如果你遇到了类似这样的问题:
焦点会触发两次,有什么方法可以纠正/防止这种情况发生吗?
jQuery(selector).focus(function(){...});
jQuery(selector).focus(function(){...});
焦点会触发两次,有什么方法可以纠正/防止这种情况发生吗?
data('events')
查找事件处理程序:var isBound = function(el, ev) {
var found = false;
$.each($(el).data("events"), function(i, e) {
if (i === ev) {
found = true;
}
});
return found;
}
if (!isBound(selector, 'focus')) {
$(selector).bind('focus', fn);
}
我认为你也可以使用jQuery中的.one()
函数,参考http://api.jquery.com/one/
var fnFocus = function(){ ... };
$(selector).bind('focus.namespace',fnFocus);
$(selector).unbind('focus.namespace').bind('focus.namespace',fnFocus);