我有一个文本框和下面的div。我想在用户点击文本框或div之外时隐藏div。
除了document.click之外还有其他方法可以处理用户在外面点击的方法。因为在某些控件中,会给出event.stoppropagation,点击后不会触发文档点击事件。
由于
答案 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}}事件传播。