Javascript 如何捕获';车身';和内部';车身';页面中的事件[Jquery]
我的当前代码的作用: 我有这个HTMLJavascript 如何捕获';车身';和内部';车身';页面中的事件[Jquery],javascript,jquery-selectors,jquery,Javascript,Jquery Selectors,Jquery,我的当前代码的作用: 我有这个HTML <li> <span>Logged in as</span> <a class="user" href="#"><?php echo $this->loggedas ?></a> <a id="loginarrow" href="javascript: void(0);"></a> </l
<li>
<span>Logged in as</span>
<a class="user" href="#"><?php echo $this->loggedas ?></a>
<a id="loginarrow" href="javascript: void(0);"></a>
</li>
它的工作很好,但我可以关闭它再次点击。
我不想,所以我想,如果它打开,我点击背景,所以它必须关闭。
为此,我这样做了
$("#loginarrow,body").click(function() {
$("#logindrop").toggle("slow");
return false;
});
现在它的工作很酷,但还有另一个问题
1=我在页面(正文)中有许多其他html元素,其中有其他事件要调用。因此,在本例中,每当我单击页面中的其他元素时,就会切换my this div逻辑
我想要相同的功能,但不是在我的其他元素上,只是在后台。
任何提示仅当其可见时才关闭
$("body").click(function() {
if ($("#logindrop").is(":visible"))
$("#logindrop").hide("slow");
});
只有当它可见时才关闭它
$("body").click(function() {
if ($("#logindrop").is(":visible"))
$("#logindrop").hide("slow");
});
良好浏览器性能的一个基本设计原则是只捕获您感兴趣的事件 因此,在
元素上放置.click()
处理程序,但在该处理程序中,在主体上注册一个一次性事件处理程序,该处理程序将再次关闭它。类似于(未经测试):
这将确保您不会不必要地拦截对正文的每次单击
,除非您确实需要这样做
请参见良好浏览器性能的基本设计原则是只捕获您感兴趣的事件
因此,在元素上放置.click()
处理程序,但在该处理程序中,在主体上注册一个一次性事件处理程序,该处理程序将再次关闭它。类似于(未经测试):
这将确保您不会不必要地拦截对正文的每次单击
,除非您确实需要这样做
请参见请格式化您的代码,这样我们就不必滚动它来阅读。好的,实际上在我的制作页面中,我正在这样做。我正在这样做it@Alnitak它现在由Zuul格式化请格式化您的代码,这样我们就不必滚动它来阅读了。好的,实际上在我的制作页面中,我正在这样做。我正在这样做it@Alnitak它现在由祖尔西尔格式化主席先生,我认为它会把它打开,把它藏起来。
$('#loginarrow').click(function() {
$('#logindrop').show('slow');
$('body').one('click', function() {
$('#logindrop').hide('slow');
});
return false;
});