如何触发 jquery 中 "this" 对象的邻居元素
How to trigger neighbour element to "this" object in jquery
我有 1 个按钮 - <a>
link 和列表 - ul。单击按钮时,我需要 show/hide 列表。这是代码:
<div class="wide-tile" id="tile-1">
<div class="size-set">
<a href="#" class="toggle-btn"> > </a>
<ul class="size-list">
<li>1x1</li>
<li>1x2</li>
<li>2x1</li>
<li>2x2</li>
</ul>
</div>
<a href="details.html" class="wide-tile-link">
<span class="title">About us</span>
</a>
</div>
问题是:我有很多块,每个块都有相同的 "set-size" class div。
当我按下 link 时,我需要切换 ul 列表。
到目前为止,我已经完成 JQuery
$(".size-set").click(function(){
$(".toggle-btn",this).click(function(){
$(".size-list",this).toggle("slow","swing");
});
});
它不起作用,可能是因为此 $(".size-list",this)
构造用于父子 class。我需要的是相同的 DOM 级别访问权限。
先单独绑定点击事件,然后就可以使用.siblings()
Get the siblings of each element in the set of matched elements, optionally filtered by a selector.
代码
$(".toggle-btn").click(function(){
$(this).siblings(".size-list").toggle("slow", "swing");
});
根据您当前的 HTML,您还可以使用 .next()
Get the immediately following sibling of each element in the set of matched elements.
代码
$(this).next(".size-list").toggle("slow","swing");
您需要单独绑定 $(".toggle-btn").click
并使用 $.fn.next
让兄弟 .size-list
切换。在这种情况下,您不再需要 .size-set
上的点击事件:
$(".toggle-btn").click(function() {
$(this).next(".size-list").toggle("slow", "swing");
});
试试这个。
$(document).ready(function(){
$("size-set").on("click", ".toggle-btn", function(){
$(this).closest("size-set").find(".size-list").toggle("slow","swing")
});
});
我得到了什么,这就是我让 2 工作的原因 demo。希望对您有所帮助。
$("#tile-1 .size-set a.toggle-btn").click(function(e){
$('#tile-1 .size-list, #tile-1 .size-set a.toggle-btn').toggle('slow','swing');
e.preventDefault();
});
我有 1 个按钮 - <a>
link 和列表 - ul。单击按钮时,我需要 show/hide 列表。这是代码:
<div class="wide-tile" id="tile-1">
<div class="size-set">
<a href="#" class="toggle-btn"> > </a>
<ul class="size-list">
<li>1x1</li>
<li>1x2</li>
<li>2x1</li>
<li>2x2</li>
</ul>
</div>
<a href="details.html" class="wide-tile-link">
<span class="title">About us</span>
</a>
</div>
问题是:我有很多块,每个块都有相同的 "set-size" class div。 当我按下 link 时,我需要切换 ul 列表。 到目前为止,我已经完成 JQuery
$(".size-set").click(function(){
$(".toggle-btn",this).click(function(){
$(".size-list",this).toggle("slow","swing");
});
});
它不起作用,可能是因为此 $(".size-list",this)
构造用于父子 class。我需要的是相同的 DOM 级别访问权限。
先单独绑定点击事件,然后就可以使用.siblings()
Get the siblings of each element in the set of matched elements, optionally filtered by a selector.
代码
$(".toggle-btn").click(function(){
$(this).siblings(".size-list").toggle("slow", "swing");
});
根据您当前的 HTML,您还可以使用 .next()
Get the immediately following sibling of each element in the set of matched elements.
代码
$(this).next(".size-list").toggle("slow","swing");
您需要单独绑定 $(".toggle-btn").click
并使用 $.fn.next
让兄弟 .size-list
切换。在这种情况下,您不再需要 .size-set
上的点击事件:
$(".toggle-btn").click(function() {
$(this).next(".size-list").toggle("slow", "swing");
});
试试这个。
$(document).ready(function(){
$("size-set").on("click", ".toggle-btn", function(){
$(this).closest("size-set").find(".size-list").toggle("slow","swing")
});
});
我得到了什么,这就是我让 2 工作的原因 demo。希望对您有所帮助。
$("#tile-1 .size-set a.toggle-btn").click(function(e){
$('#tile-1 .size-list, #tile-1 .size-set a.toggle-btn').toggle('slow','swing');
e.preventDefault();
});