所以我有一个回调函数绑定到两个事件(change
和focusout
)。但是,只有当我们与之交互的元素不是checkbox
时,我才需要关注焦点。
这是示例代码:
$(document).on('focusout change', '.selector', function() {
if ($(this).is(':checkbox')) {
// Do stuff and prevent the focusout to trigger. HOW???
}
doStuff(); // Action that applies to both cases, but needs to be limited at one execution only
});
上面的代码将执行两次:
我尝试使用.off
,但它最终完全杀死了focousout
处理程序,稍后我将需要其他不是复选框的元素。
阻止focusout
处理程序触发某些元素的方法是什么?
答案 0 :(得分:1)
你想做的是
$(document).on('focusout change', '.selector', function(event) {
event
是一个事件对象,它具有属性,其中一个属性为type
。检查type
您现在可以查看是否因为focusout
或change
而调用了您的功能,并根据需要运行代码