Make sure that unbinding on a plain javascript object works correctly. Fixes #6184.
This commit is contained in:
parent
28b489bfc8
commit
7f5179b654
2 changed files with 35 additions and 2 deletions
|
@ -525,10 +525,14 @@ jQuery.event = {
|
||||||
|
|
||||||
var removeEvent = document.removeEventListener ?
|
var removeEvent = document.removeEventListener ?
|
||||||
function( elem, type, handle ) {
|
function( elem, type, handle ) {
|
||||||
elem.removeEventListener( type, handle, false );
|
if ( elem.removeEventListener ) {
|
||||||
|
elem.removeEventListener( type, handle, false );
|
||||||
|
}
|
||||||
} :
|
} :
|
||||||
function( elem, type, handle ) {
|
function( elem, type, handle ) {
|
||||||
elem.detachEvent( "on" + type, handle );
|
if ( elem.detachEvent ) {
|
||||||
|
elem.detachEvent( "on" + type, handle );
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
jQuery.Event = function( src ) {
|
jQuery.Event = function( src ) {
|
||||||
|
|
|
@ -373,6 +373,35 @@ test("bind(), with different this object", function() {
|
||||||
ok( !jQuery.data(jQuery("#firstp")[0], "events"), "Event handler unbound when using different this object and data." );
|
ok( !jQuery.data(jQuery("#firstp")[0], "events"), "Event handler unbound when using different this object and data." );
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test("bind()/trigger()/unbind() on plain object", function() {
|
||||||
|
expect( 2 );
|
||||||
|
|
||||||
|
var obj = {};
|
||||||
|
|
||||||
|
// Make sure it doesn't complain when no events are found
|
||||||
|
jQuery(obj).trigger("test");
|
||||||
|
|
||||||
|
// Make sure it doesn't complain when no events are found
|
||||||
|
jQuery(obj).unbind("test");
|
||||||
|
|
||||||
|
jQuery(obj).bind("test", function(){
|
||||||
|
ok( true, "Custom event run." );
|
||||||
|
});
|
||||||
|
|
||||||
|
ok( jQuery(obj).data("events"), "Object has events bound." );
|
||||||
|
|
||||||
|
// Should trigger 1
|
||||||
|
jQuery(obj).trigger("test");
|
||||||
|
|
||||||
|
jQuery(obj).unbind("test");
|
||||||
|
|
||||||
|
// Should trigger 0
|
||||||
|
jQuery(obj).trigger("test");
|
||||||
|
|
||||||
|
// Make sure it doesn't complain when no events are found
|
||||||
|
jQuery(obj).unbind("test");
|
||||||
|
});
|
||||||
|
|
||||||
test("unbind(type)", function() {
|
test("unbind(type)", function() {
|
||||||
expect( 0 );
|
expect( 0 );
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue