我只想将事件绑定到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
});
答案 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
});