美文网首页
onclick和onblur冲突问题的解决方法

onclick和onblur冲突问题的解决方法

作者: charmingcheng | 来源:发表于2018-01-18 10:00 被阅读0次

我们同时使用onblur和onclick来使下拉框隐藏,但是更大的问题出现了,这两个功能相冲突,onblur过于强悍,根本没有onclick方法实现的机会,搜索框无法获取点击项的内容。这个就是我们想要解决的onclick和onblur冲突问题。

对应这个问题,这里我们介绍两种解决办法:

  1. 使用setTimeout来使onblur时间延期执行,使onclick执行完后再执行onblur。(其中setTimeout的时间设定应该在100ms以上,否则依旧不行)示例代码如下:
$(".mdd").focus(function() {
    $(".area").show();
});
$(".arealist a").click(function(){
    var area = $(this).html();
    $(".mdd").val(area);
    $(".area").hide();
});
$(".mdd").blur(function() {
    timer=setTimeout(function(){
        $(".area").hide(); 
    },120);
});
  1. 使用document.onmousedown来代替onblur实现隐藏下拉框功能
$(".mdd").focus(function() {
    $(".area").show();
});
$(".arealist a").click(function(){
    var area = $(this).html();
    $(".mdd").val(area);
    $(".area").hide();
});
$(".mdd").mousedown(function() {
    $(".area").hide(); 
});

相关文章

网友评论

      本文标题:onclick和onblur冲突问题的解决方法

      本文链接:https://www.haomeiwen.com/subject/couioxtx.html