我正在将 onclick 处理程序分配给复选框。有时,执行事件绑定(bind)的 JavaScript 会多次运行(在部分回发时),并且处理程序会被分配两次。如何防止处理程序被多次分配?
好的,谢谢您的回复。我写了一些东西来弄清楚元素是否有处理程序:
$.fn.hasHandler = function(eventName, handler)
{
var _hasHandler = false;
if(handler != undefined && this.data("events") !== null && this.data("events") !== undefined)
{
$.each(this.data("events"), function(name, handlers)
{
if(name === eventName)
{
$.each(handlers, function(index, value)
{
if(value.handler === handler)
{
_hasHandler = true;
}
});
}
});
}
return _hasHandler;
}
最佳答案
您可以先解绑。
$('#foo').unbind('click').bind('click', function(){...在这里做一些事情...});
关于javascript - jQuery/javascript - 仅当尚未分配事件处理程序时才连接事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5568702/