Cleaned up how event removing was handled. All expandos are now removed when they are no longer needed. Additionally, a bug where all events are unbound if an incorrect event handler is provided, was fixed.

This commit is contained in:
John Resig 2007-03-01 04:54:51 +00:00
parent f8fcc9525d
commit 6b729ff798
2 changed files with 36 additions and 23 deletions

View file

@ -15,7 +15,7 @@ test("toggle(Function, Function) - add toggle event and fake a few clicks", func
});
test("unbind(event)", function() {
expect(4);
expect(6);
var el = $("#firstp");
el.click(function() {
ok( true, "Fake normal bind" );
@ -29,6 +29,13 @@ test("unbind(event)", function() {
el.click(function() { return; });
el.unbind('click');
ok( !el[0].onclick, "Handler is removed" ); // Bug #964
el.click(function() { return; });
el.unbind('change',function(){ return; });
ok( el[0].onclick, "Extra handlers weren't accidentally removed." );
el.unbind('click');
ok( !el[0].$events, "Removed the events expando after all handlers are unbound." );
});
test("trigger(event, [data]", function() {
@ -59,4 +66,4 @@ test("bind() with data and trigger() with data", function() {
ok( data.bar == "foo", "Check value of trigger data" );
}
$("#firstp").bind("click", {foo: "bar"}, handler).trigger("click", [{bar: "foo"}]);
});
});