.saf_search是一个按钮,当它被点击时,菜单.lisearch淡入,当你点击页面上的任何地方时,除了菜单.lisearch,然后它应该淡出(这就是它的支持工作方式)有没有人知道为什么这不起作用?它渐渐消失了,第一次点击页面上的任何地方都会淡出,但第二次尝试淡入菜单时,它会很快淡出,而不会点击文档。我认为这与.one有关,但我在硬盘崩溃之前工作了,现在我无法弄清楚如何让它再次运行......
$('.saf_search').click(function() {
$('.lisearch').fadeIn(200);
});
$(document).click(function(){
jQuery(".lisearch").click(function(){ return false; });
jQuery(document).one("click", function() { jQuery(".lisearch").fadeOut(); });
});
答案 0 :(得分:1)
原因是因为您正在使用“one”事件绑定函数,该函数绑定到事件并且仅在第一次触发时停留。试试这个:
$(document).click(function(){
$('.saf_search').click(function() {
$('.lisearch').fadeIn(200);
});
$(document).click(function() {
//Make sure that the click isn't inside .lisearch
if (!$(this).closest('.lisearch').length){
$(".lisearch").fadeOut();
}
});
$(".lisearch").click(function(){ return false; });
});
答案 1 :(得分:0)
您是否将处理程序包装在外部$(document).click(...)
内?你不想要$(document).ready(...)
吗?
$(document).ready(function(){
$(document).click(function() {
$(".lisearch").fadeOut();
});
$(".lisearch").click(function(){
return false; //Prevent event propagation
});
});