存储值并在javascript oops中重用
我目前有3个div,可以超过3个,每个div都有一个锚定标记,锚定标记具有单击功能,可以在同一父级中打开存储值并在javascript oops中重用,javascript,jquery,oop,Javascript,Jquery,Oop,我目前有3个div,可以超过3个,每个div都有一个锚定标记,锚定标记具有单击功能,可以在同一父级中打开UL。我想要的是,我可以打开UL并关闭它们,而不会影响另一个。我已经用oops的概念做了一个函数,但是它没有按照我想要的那样工作。单击两下即可获得下一个锚定标记。这可以通过oops逻辑完成,还是我们必须选择另一种方式 您可以完全按照自己的意愿使用: $('a').click(function(){ $(this).parent().find('ul').slideToggle() })
UL
。我想要的是,我可以打开UL
并关闭它们,而不会影响另一个。我已经用oops的概念做了一个函数,但是它没有按照我想要的那样工作。单击两下即可获得下一个锚定标记。这可以通过oops逻辑完成,还是我们必须选择另一种方式
您可以完全按照自己的意愿使用:
$('a').click(function(){
$(this).parent().find('ul').slideToggle()
});
小提琴:
编辑:
此外,一种方法是使用闭包,就像您尝试的那样:
$('a').each(function(){
var anchor = $(this);
var shown = false;
function toggle(){
if(shown) anchor.parent().find('ul').slideUp()
else $(this).parent().find('ul').slideDown()
shown = !shown;
}
anchor.click(toggle);
});
这只是为了演示如何做类似的事情。在这种情况下,使用slideToggle和fadeToggle要简单得多。
该fiddle链接是空的。您的意思是让您的jsiddle链接直接转到jsiddle站点,还是让您设置一个fiddle来查看此代码?我编辑了fiddle链接,感谢您回答这个问题,您的回答很好,但是当我们使用fadeIn和fadeOut而不是slideToggle时,因此,我们如何管理它,这是我也会这样做。或者可以使用
$('a')。在('click',function(){
而不是$('a')。单击(function(){
作为第一行-只是个人偏好。要切换淡入淡出,只需使用淡入淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出
$('a').each(function(){
var anchor = $(this);
var shown = false;
function toggle(){
if(shown) anchor.parent().find('ul').slideUp()
else $(this).parent().find('ul').slideDown()
shown = !shown;
}
anchor.click(toggle);
});