我有一个引导弹出窗口,它在输入的focus
上变为活动状态。弹出窗口中包含一个按钮,用于执行ajax请求。
我有一个blur
函数可以在用户点击输入时关闭弹出窗口:
$(document).on('blur','.open-popover',function(){
$(".popover").attr("style","");
//and do other things too
});
如果用户按下popover中的按钮,我试图阻止上面的blur
函数运行:
$(document).on('click','button',function(){
//prevent the blur actions and
//do ajax stuff
});
答案 0 :(得分:2)
你看过stopImmediatePropagation
了吗?如果使用jQuery,那么事件处理程序将按它们绑定的顺序触发。只需在模糊之前绑定点击,然后在点击事件中运行stopImmediatePropagation。
// bind click event first
$(document).on('click','button',function(event){
// keeps the rest of the handlers from being executed and prevents the event from bubbling up the DOM tree.
event.stopImmediatePropagation();
});
// then attach blur
$(document).on('blur','.open-popover',function(){
$(".popover").attr("style","");
//and do other things too
});