Skip to content
Permalink
Browse files

Added support for map of events in live, die, delegate and undelegate…

…. Fixes #6282.
  • Loading branch information
rkatic authored and jeresig committed Mar 14, 2010
1 parent 97b4249 commit da5706c974f8ef720b3194179366e1096c19269e
Showing with 47 additions and 0 deletions.
  1. +8 −0 src/event.js
  2. +39 −0 test/unit/event.js
@@ -944,6 +944,14 @@ jQuery.each(["live", "die"], function( i, name ) {
var type, i = 0, match, namespaces, preType,
selector = origSelector || this.selector,
context = origSelector ? this : jQuery( this.context );

if ( typeof types === "object" && !types.preventDefault ) {
for ( var key in types ) {
context[ name ]( key, data, types[key], selector );
}

return this;
}

if ( jQuery.isFunction( data ) ) {
fn = data;
@@ -206,6 +206,45 @@ test("bind/one/unbind(Object)", function(){
equals( mouseoverCounter, 4, "bind(Object)" );
});

test("live/die(Object), delegate/undelegate(String, Object)", function() {
expect(6);

var clickCounter = 0, mouseoverCounter = 0,
$p = jQuery("#firstp"), $a = $p.find("a");

var events = {
click: function( event ) {
clickCounter += ( event.data || 1 );
},
mouseover: function( event ) {
mouseoverCounter += ( event.data || 1 );
}
};

function trigger() {
$a.trigger("click").trigger("mouseover");
}

$a.live( events );
$p.delegate( "a", events, 2 );

trigger();
equals( clickCounter, 3, "live/delegate(Object)" );
equals( mouseoverCounter, 3, "live/delegate(Object)" );

$p.undelegate( "a", events );

trigger();
equals( clickCounter, 4, "undelegate(Object)" );
equals( mouseoverCounter, 4, "undelegate(Object)" );

$a.die( events );

trigger();
equals( clickCounter, 4, "die(Object)" );
equals( mouseoverCounter, 4, "die(Object)" );
});

test("bind(), iframes", function() {
// events don't work with iframes, see #939 - this test fails in IE because of contentDocument
var doc = jQuery("#loadediframe").contents();

1 comment on commit da5706c

@NickCraver

This comment has been minimized.

Copy link

NickCraver commented on da5706c Nov 16, 2010

I was looking to add support for this today...only to find it's already here. Can we get the API updated on this one? http://api.jquery.com/live/ and http://api.jquery.com/delegate/ make no mention that a map is now supported...which is very handy.

Please sign in to comment.
You can’t perform that action at this time.