mirror of
https://github.com/jquery/jquery.git
synced 2024-11-23 02:54:22 +00:00
Ref #13353: capture onlyHandlers in jQuery.Event.isTrigger. Close gh-1183.
This commit is contained in:
parent
b6dd1c67a6
commit
65a6648932
@ -240,7 +240,8 @@ jQuery.event = {
|
||||
event :
|
||||
new jQuery.Event( type, typeof event === "object" && event );
|
||||
|
||||
event.isTrigger = true;
|
||||
// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)
|
||||
event.isTrigger = onlyHandlers ? 2 : 3;
|
||||
event.namespace = namespaces.join(".");
|
||||
event.namespace_re = event.namespace ?
|
||||
new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) :
|
||||
|
@ -1487,21 +1487,42 @@ test("jQuery.Event( type, props )", function() {
|
||||
|
||||
});
|
||||
|
||||
test("jQuery.Event.currentTarget", function(){
|
||||
expect(2);
|
||||
test("jQuery.Event properties", function(){
|
||||
expect(12);
|
||||
|
||||
jQuery("<div><p><button>shiny</button></p></div>")
|
||||
.on( "click", "p", function( e ){
|
||||
equal( e.currentTarget, this, "Check delegated currentTarget on event" );
|
||||
})
|
||||
.find( "button" )
|
||||
.on( "click", function( e ){
|
||||
equal( e.currentTarget, this, "Check currentTarget on event" );
|
||||
})
|
||||
.trigger("click")
|
||||
.off( "click" )
|
||||
.end()
|
||||
.off( "click" );
|
||||
var handler,
|
||||
$structure = jQuery("<div id='ancestor'><p id='delegate'><span id='target'>shiny</span></p></div>"),
|
||||
$target = $structure.find("#target");
|
||||
|
||||
handler = function( e ) {
|
||||
strictEqual( e.currentTarget, this, "currentTarget at " + this.id );
|
||||
equal( e.isTrigger, 3, "trigger at " + this.id );
|
||||
};
|
||||
$structure.one( "click", handler );
|
||||
$structure.one( "click", "p", handler );
|
||||
$target.one( "click", handler );
|
||||
$target[0].onclick = function( e ) {
|
||||
strictEqual( e.currentTarget, this, "currentTarget at target (native handler)" );
|
||||
equal( e.isTrigger, 3, "trigger at target (native handler)" );
|
||||
};
|
||||
$target.trigger("click");
|
||||
|
||||
$target.one( "click", function( e ) {
|
||||
equal( e.isTrigger, 2, "triggerHandler at target" );
|
||||
});
|
||||
$target[0].onclick = function( e ) {
|
||||
equal( e.isTrigger, 2, "triggerHandler at target (native handler)" );
|
||||
};
|
||||
$target.triggerHandler("click");
|
||||
|
||||
handler = function( e ) {
|
||||
strictEqual( e.isTrigger, undefined, "native event at " + this.id );
|
||||
};
|
||||
$target.one( "click", handler );
|
||||
$target[0].onclick = function( e ) {
|
||||
strictEqual( e.isTrigger, undefined, "native event at target (native handler)" );
|
||||
};
|
||||
fireNative( $target[0], "click" );
|
||||
});
|
||||
|
||||
test(".delegate()/.undelegate()", function() {
|
||||
|
Loading…
Reference in New Issue
Block a user