input元素的blur事件与定位在其上面的元素的点击(click)事件冲突的解决方法

在登录和注册框中,在input上定位一个清空内容的按钮。

但是给按钮的单击事件不生效。

解决的办法: 在blur的回调函数中加一个定时器,延迟blur回调函数的执行时间,这样的话虽然在点击div的时候,input的blur行为先被触发,但是由于加了定时器延迟,所以得等到按钮的click回调执行完成后才能执行input的blur行为的回调;

//文本框失去焦点隐藏按钮
    input.blur(function(){
        setTimeout(function(){
            $(this).next(btn).hide();
        },300);
    });
    //点击清空按钮 文本框取消值
    btn.click(function (){
        $(this).prev(input).val("");
        $(this).hide();
    });
原文地址:https://www.cnblogs.com/wei-dong/p/7647526.html