如果jQuery.on()只接收两个参数,是否可以实现事件委派?

如果jQuery.on()只接收两个参数,是否可以实现事件委派?,jquery,Jquery,我正在和阅读有关委派活动的信息。我正在检查以下语法: .on( events [, selector ] [, data ], handler ) 为了实现事件委派,必须使用上述语法中的可选[,选择器],对吗?例如,这不会实现事件委派(注意.on()如何只接收两个参数): 这是在实现事件委派(请注意.on()如何接收两个以上的参数): 如果jQuery.on()只接收两个参数,是否可以实现事件委派?我的印象是这是不可能的,但我想得到一个确认。谢谢。从技术上讲它可以。可选选择器参数将在后台根据事

我正在和阅读有关委派活动的信息。我正在检查以下语法:

.on( events [, selector ] [, data ], handler )
为了实现事件委派,必须使用上述语法中的可选
[,选择器]
,对吗?例如,这不会实现事件委派(注意.on()如何只接收两个参数):

这是在实现事件委派(请注意.on()如何接收两个以上的参数):


如果jQuery.on()只接收两个参数,是否可以实现事件委派?我的印象是这是不可能的,但我想得到一个确认。谢谢。

从技术上讲它可以。可选选择器参数将在后台根据事件目标进行检查,并且仅当存在匹配时才执行处理程序函数。没有什么能阻止你写你自己的代表团。例如:

$( "#list" ).on( "click", function( event ) {
    event.preventDefault();
    if( event.target.nodeName === a ) {
        console.log( $( this ).text() );
    }
});
但是,这可能是毫无意义的,您的理解基本上是正确的。

要被视为“委托”,事件处理程序必须提供“选择器”参数。
// Attach a delegated event handler
$( "#list" ).on( "click", "a", function( event ) {
    event.preventDefault();
    console.log( $( this ).text() );
});
$( "#list" ).on( "click", function( event ) {
    event.preventDefault();
    if( event.target.nodeName === a ) {
        console.log( $( this ).text() );
    }
});