Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当用户单击div标记外部时隐藏div标记_Javascript_Html - Fatal编程技术网

Javascript 当用户单击div标记外部时隐藏div标记

Javascript 当用户单击div标记外部时隐藏div标记,javascript,html,Javascript,Html,我有一个div标记,我正在一个自定义网格上填充搜索结果,该网格位于这个div标记内 当用户单击搜索按钮时,我在上面提到的div标记中显示结果 当用户在div标记外单击时,我需要关闭上面的div标记 它类似于谷歌搜索自动完成 提前感谢。基本想法 在body标记上关联onclick事件以隐藏div 在div标记上连接onclick事件并停止事件冒泡 请参见 阻止事件冒泡 在Microsoft模型中,必须将事件的cancelBubble属性设置为true window.event.cancelBubb

我有一个div标记,我正在一个自定义网格上填充搜索结果,该网格位于这个div标记内

当用户单击搜索按钮时,我在上面提到的div标记中显示结果

当用户在div标记外单击时,我需要关闭上面的div标记

它类似于谷歌搜索自动完成

提前感谢。

基本想法

  • 在body标记上关联onclick事件以隐藏div
  • 在div标记上连接onclick事件并停止事件冒泡
  • 请参见

    阻止事件冒泡

    在Microsoft模型中,必须将事件的cancelBubble属性设置为true

    window.event.cancelBubble = true
    
    在W3C模型中,必须调用事件的stopPropagation()方法


    在jQuery中,类似以下内容:

    $('body').click(function(ev){
      if (!$(this).hasClass('your_result_container_classname') {
        // code to hide result div
        $('body').unbind('click'); // remove event handler. add again when results shown.
      }
    });
    

    在javascript/jquery中寻找解决方案?我需要javascript中的解决方案。当用户单击div元素中的某个元素时会发生什么?谢谢您的回复。我正在使用asp.net母版页,无法使用body onclick事件,因为它将在许多其他内容页中使用。同时,如何为用户控件中使用的div标记找到html生成的id?谢谢你advance@Madhu:如何找到为div标记生成的html id:将其作为一个单独的问题发布,并附带如何定义它的源代码示例。很抱歉,回复太晚。如何停止javascript中的事件冒泡?
    $('body').click(function(ev){
      if (!$(this).hasClass('your_result_container_classname') {
        // code to hide result div
        $('body').unbind('click'); // remove event handler. add again when results shown.
      }
    });