防止模糊()运行

时间:2015-06-25 21:59:11

标签: javascript jquery

我有一个引导弹出窗口,它在输入的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                                   
});

1 个答案:

答案 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  
});