jQuery选择器(仅选择目标,无后代)

时间:2018-09-07 10:55:07

标签: jquery jquery-mobile jquery-selectors

我只想将事件绑定到jQuery中的“页面”。 问题在于,使用addClass时,不仅对“页面”执行代码,而且对所有后代执行代码。我只想将addClass用于“页面” div时才触发事件。我该怎么办?

//https://stackoverflow.com/a/31859060/2947462
(function( func ) {
    $.fn.addClass = function() { // replace the existing function on $.fn
        func.apply( this, arguments ); // invoke the original function
        this.trigger('eventAddClass'); // trigger the custom event
        return this; // retain jQuery chainability
    }
})($.fn.addClass); // pass the original function as an argument


$(document).on( "eventAddClass", 'div[data-role="page"]', function(event) {
    //code - do some stuff
});

1 个答案:

答案 0 :(得分:3)

可以。

这是事件冒泡。阅读这篇〜https://www.sitepoint.com/event-bubbling-javascript/

$(document).on( "eventAddClass", 'div[data-role="page"]', function(event) {
    if(event.target !== event.currentTarget) return;

    // your custom code
});