jquery仅在单击li而不是嵌套li时切换
我得到了以下情况: 使用此js进行切换:jquery仅在单击li而不是嵌套li时切换,jquery,nested,toggle,Jquery,Nested,Toggle,我得到了以下情况: 使用此js进行切换: $("ul > li.closed").click(function() { var li = $(this).closest('li'); li.find(' > ul').slideToggle('fast'); $(this).toggleClass("closed open"); }); 单击“标题”时,将显示ul。但当我点击一个图像或在它们之间点击时,它们会切换回来,并再次被隐藏。因此,我只想在单击“He
$("ul > li.closed").click(function() {
var li = $(this).closest('li');
li.find(' > ul').slideToggle('fast');
$(this).toggleClass("closed open");
});
单击“标题”时,将显示ul。但当我点击一个图像或在它们之间点击时,它们会切换回来,并再次被隐藏。因此,我只想在单击“Headline”时切换,而不是在单击某些嵌套元素时切换,但我无法使此项正常工作。只需检查单击的是否是
LI
,而不是刚刚冒泡的事件:
$("ul > li.closed").click(function(e) {
if (e.target === this) {
var li = $(this).closest('li');
li.find(' > ul').slideToggle('fast');
$(this).toggleClass("closed open");
}
});
只需检查单击的是不是
LI
,而不是刚刚冒泡的事件:
$("ul > li.closed").click(function(e) {
if (e.target === this) {
var li = $(this).closest('li');
li.find(' > ul').slideToggle('fast');
$(this).toggleClass("closed open");
}
});
试试这个:
$(function () {
$("li.closed > ul").hide();
$("ul > li.closed").click(function () {
var li = $(this).closest('li');
li.find(' > ul').slideToggle('fast');
$(this).toggleClass("closed open");
});
$("li.fl, li.fl > a").click(function (e) {
e.stopPropagation();
});
});
试试这个:
$(function () {
$("li.closed > ul").hide();
$("ul > li.closed").click(function () {
var li = $(this).closest('li');
li.find(' > ul').slideToggle('fast');
$(this).toggleClass("closed open");
});
$("li.fl, li.fl > a").click(function (e) {
e.stopPropagation();
});
});
最好的方法是将action元素包装在HTML标记中,以获得更多的控制权:
<ul>
<li class="closed"><a href="javascript:void(0)">Headline 1</a>
<ul>
<li class="fl"><a href="#"><img src="#"></a></li>
<li class="fl"><a href="#"><img src="#"></a></li>
</ul>
</li>
...
</ul>
最好是将action元素包装在HTML标记中,以获得更多控制:
<ul>
<li class="closed"><a href="javascript:void(0)">Headline 1</a>
<ul>
<li class="fl"><a href="#"><img src="#"></a></li>
<li class="fl"><a href="#"><img src="#"></a></li>
</ul>
</li>
...
</ul>
很好用,谢谢。学习新东西总是很好:)非常好用,谢谢。总是乐于学习新事物:)