Javascript 如何创建一个函数,在每次jQuery绑定到click事件时都显示console.log详细信息?
如何创建一个函数,在每次jQuery绑定到click事件时都显示console.log详细信息 就像发生这种情况时记录日志一样Javascript 如何创建一个函数,在每次jQuery绑定到click事件时都显示console.log详细信息?,javascript,jquery,Javascript,Jquery,如何创建一个函数,在每次jQuery绑定到click事件时都显示console.log详细信息 就像发生这种情况时记录日志一样 $('.classy').on('click', 'button', function(){ console.log('clicked'); }) 我正在尝试排除这些事件触发两次的原因。方法是使用新函数覆盖现有的on()方法。新函数执行日志记录,然后调用旧的on()实现 (function () { // Store a reference to t
$('.classy').on('click', 'button', function(){
console.log('clicked');
})
我正在尝试排除这些事件触发两次的原因。方法是使用新函数覆盖现有的
on()
方法。新函数执行日志记录,然后调用旧的on()
实现
(function () {
// Store a reference to the existing bind method
var _on = jQuery.fn.on;
// Define a new implementation
jQuery.fn.on = function () {
// Do your logging, etc.
console.log("on called with " + arguments.length + " arguments");
// Don't forget to do the actual bind!
return _on.apply(this, arguments);
};
}());
请记住,所有其他事件方法(bind()
,live()
,delegate()
)和快捷方式方法(hover()
,click()
等)都会在后台调用on()
,因此对它的调用也会触发日志事件
您可以在这里看到这一点;正如我看到的那样,.on()有四个参数,选择器,以减少匹配的元素、数据和处理函数的总数。My your代码要求第三个参数为null,第四个参数为函数?我发现:我编写的绑定工作正常。请阅读下面的评论。@MerianosNikos-第三个参数是可选的,如链接到的页面所示。太棒了,您知道这是否正常吗?
使用两个参数调用bind
[“click.delegateventsview8”,function(){[native code]}
如果您正在输出arguments
变量的内容,那么是的。尽管我不明白为什么要将本机函数作为第二个参数传递给bind()
?也许你可以用你试图录制的绑定的实际调用来更新你的问题,这样会更有意义:)。我认为这些都来自backbone.js事件绑定。Matt你看起来很有知识,你介意看看我试图解决的这个问题吗@幻想:对不起,我对主干网/jQuery手机没有太多经验:(。