如果点击/聚焦div,则不应触发jQuery模糊

sad*_*ave 5 jquery input blur

我有一个标准的文本输入,有一个模糊事件.单击文档中的任何内容(输入AND <div id='show-anyways'></div>除外)时,应触发blur事件.

我的问题是我不知道如何添加<div id='show-anyways'></div>以否定模糊事件功能.

希望我已经解释得很好,我知道这有点奇怪.如果您需要更多信息,请告诉我.

cha*_*tfl 10

使用事件目标确定单击的内容.以下将跟踪文档的所有点击,如果元素是DIV或输入,则不会触发blur().

var $input=$( '#MY-Input-ID');

$(document).click(function(evt){
   var $tgt=$(evt.target);
   if( !$tgt.is( '#show-anyways') && !$tgt.is($input) ){
         $input.blur()
    }
})
Run Code Online (Sandbox Code Playgroud)

它不会触发具有任何preventPropogation设置的元素.

  • 注意:检查div及其所有子项中的单击的好方法是将`&&!$ tgt.is($('*',$('show-anyways')))`添加到条件上面点击功能中的语句. (2认同)