JQuery:点击无处不在但有些元素?

时间:2012-03-01 21:05:39

标签: javascript jquery

我有一个文本框和下面的div。我想在用户点击文本框或div之外时隐藏div。

除了document.click之外还有其他方法可以处理用户在外面点击的方法。因为在某些控件中,会给出event.stoppropagation,点击后不会触发文档点击事件。

由于

4 个答案:

答案 0 :(得分:1)

// This means if you click anywhere on the document once, it'll hide the div
$(document).one("click", function() {/*Do stuff, hide div*/});
// This overrides the previous line for just the textarea and div, therefore making this block of code only apply to everything but the textarea and div
$('textbox, div').click(function(){return false;});

答案 1 :(得分:0)

创建一个叠加div(请参阅other questions),然后向叠加div添加一个单击事件,该div隐藏文本框下方的div并销毁叠加div。

答案 2 :(得分:0)

<script type="text/javascript">
    hideDiv()
    {
         document.getElementById("divId").style.display = "none";
    }
</script>


<input type="text" onblur='javascript:hideDiv()'>

我认为这应该有用。

答案 3 :(得分:0)

由于您提到您在点击事件页面的不同部分有event.stopPropagation(),因此document.click无法隐藏文本框。

为什么不使用document.mousedown?它会正常工作。

$(document).mousedown(function(){
    $('textboxSelector').hide();
});

确保您停止mousedown textbox及其div内的{{1}}事件传播。