我有问题。当我第一次按下链接div show时,然后当我按下文档时它会消失。当我第二次按下链接时div出现并突然消失。怎么了?
$(function() {
$("#trigger").click(function() {
$('#toolWrapper').toggle(function() {
$(document).click(function(event) {
if (!($(event.target).is('#toolWrapper') || $(event.target).parents('#toolWrapper').length || $(event.target).is('#trigger'))) {
$('#toolWrapper').hide(500);
event.preventDefault();
}
});
});
});
});
答案 0 :(得分:0)
您已嵌套回调 - 因此您只在其他回调中设置事件回调。我想这就是造成你问题的原因。
在触发器事件处理程序中,如果使用event.stopPropagation();
,则可以停止调用文档事件处理程序,因此您不必检查它是否是事件目标。
这是你想要做的吗? jsfiddle
[编辑]:添加了回答代码:
$(document).ready(function() {
$('#toolWrapper').hide();
});
$("#trigger").click(function(event) {
$('#toolWrapper').show();
event.stopPropagation();
});
$(document).click(function() {
if (!$(event.target).is('#toolWrapper') || $(event.target).parents('#toolWrapper').length) {
$("#toolWrapper").hide(500);
}
});