$("#clickToOpen").live('click',function(event) {
$("#dropdownMenu").show();
event.stopPropagation();
});
$("#dropdownMenu").live('click',function(event){
event.stopPropagation();
});
$(document).live('click',function() {
$("#dropdownMenu").hide();
});
(我也尝试使用click()函数直接处理(document)上的最后一个事件,因为这个元素没有重新加载,但不起作用)
有什么想法吗?
答案 0 :(得分:0)
我觉得你可以创建一个像
这样的课程.hide {
display:none;
}
并使用像这样的toggleClass ......
$("#clickToOpen").live('click',function(event) {
$('#dropdownMenu').toggleClass("hide");
})
不是经过测试的代码......
这是你的最终代码......
<!DOCTYPE html>
<html>
<head>
<style>
.hide {
display:none;
}
.show {
display:visible;
}
</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<a href='' id='clickToOpen'>click me</a>
<div id='dropdownMenu' class='hide'>dropdownMenu</div>
<script>
$("#clickToOpen").live('click',function(event) {
$('#dropdownMenu').toggleClass("hide");
event.preventDefault();
})
</script>
</body>
</html>
答案 1 :(得分:0)
如果我错了,有人应该纠正我。
但是我对.live
调用event.stopPropagation()
的理解根本没有任何影响,因为对于实际工作而言,它附加到窗口或文档对象,因此,它已经传播到它已经可以了。
关于隐藏菜单,
我相信您应该考虑添加透明叠加层,与模态对话框使用的内容相同。
然后您绑定到叠加层以隐藏菜单。