2009-10-13 127 views
0

我有一个div标签,我在自定义网格上填充搜索结果,该网格位于此divtag内。当用户在div标签外单击时隐藏div标签

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

我有一个要求,当用户在div标签外单击时关闭上面的div标签。

它类似于谷歌搜索auto comlete。

在此先感谢。

+0

寻找在JavaScript/jQuery的解决方案吗? – ukanth 2009-10-13 10:42:32

+0

我需要JavaScript解决方案。 – Madhu 2010-03-30 07:22:17

回答

1

基本思路

  1. 线体上标签的onclick事件隐藏DIV。
  2. 在div标签上连接一个onclick事件并停止事件冒泡。

Event order

要停止事件冒泡

你必须在事件的cancelBubble属性设置为true的微软模式。

window.event.cancelBubble = true 

在W3C模型中,您必须调用事件的stopPropagation()方法。

e.stopPropagation() 
+0

感谢您的回复。 我使用asp.net母版页,我不能使用body onclick事件,因为它将在许多其他内容页面中使用。 同时我怎样才能找到用户控件中使用的div标签的html生成的id? 在此先感谢 – Madhu 2009-10-13 10:58:28

+0

@Madhu:如何为div标签找到html生成的id:将其作为一个单独的问题发布,并提供如何定义它的源代码示例。 – awe 2009-10-13 11:21:47

+0

对不起,延迟回复。如何停止在JavaScript中的事件冒泡? – Madhu 2010-03-30 07:23:01

1

在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. 
    } 
}); 
+0

当用户点击div元素中的元素时会发生什么? – rahul 2009-10-13 10:48:19