我有一个div来显示当我按下按钮并在我按任何地方时隐藏。
jQuery(document).ready(function () {
$(document).click(function (e) {
if (e.button == 0) {
$('#DivToHide').hide();
}
});
//If its own, return
$('#DivToHide').click(function () {
return false;
});
//If it is the button to triger Display, return
$('#DisplayDivButton').click(function () {
return false;
});
});
这很好用,除了:DivToHide包含一个链接按钮,可以进行回调。但是当我启用上面的代码时,它不会进行回调。并非所有内容都在updatepanel中。 感谢。
答案 0 :(得分:0)
如果返回false,将阻止对事件的默认操作执行。
当你点击DIV里面的链接时,它首先在DIV上注册点击处理程序,并返回false,停止实际接收点击事件的基础链接本身。
我认为这就是为什么你的链接不起作用的原因,但是我不知道你为什么在#DivToHide上有一个处理程序,你不能只删除它并让文档句柄上的click处理程序隐藏DIV和DisplayDivButton句柄上的单击处理程序显示DIV?
答案 1 :(得分:0)
请勿定位容器div #DivToHide
..
定位其中的实际链接
//If its own, return
//this will make all links inside DivToHide to cancel default action..
$('#DivToHide a').click(function () {
return false;
});
但是,如果你的内部有更多链接,你最好在链接中添加类或 id 并直接定位它。
评论 后 更新
您应该使用链接上的event.stopPropagation();
来阻止事件冒泡到其他元素。$('#DivToHide a').click(function (event) {
event.stopPropagation();
});