我目前有3个div,它可以超过3个,每个div都有一个锚标记,锚标记具有点击功能,可以在同一个父级中打开UL
。我想要的是我可以打开UL
并关闭它们而不影响其他人。我已经用oops概念创建了一个函数,但它没有按我的意愿工作。下一个锚标记需要两次点击。可以通过oops逻辑完成,或者我们必须选择其他方式。 fiddle
$(function(){
function get(){
this.a=1;
this.show= function(a){
$(this).parent().find('ul').slideDown()
};
this.hide= function(a){
$(this).parent().find('ul').slideUp()
}
}
var n= new get();
$('a').click(function(){
if(n.a){
n.show.call(this)
n.a=0;
}
else{
n.hide.call(this)
n.a=1;
}
});
});
答案 0 :(得分:1)
您可以完全按照自己的意愿行事:
$('a').click(function(){
$(this).parent().find('ul').slideToggle()
});
小提琴:http://jsfiddle.net/2kbbgvts/1/
编辑: 另外,尝试这样做的一种方法是使用闭包:
$('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更加简单。 http://jsfiddle.net/2kbbgvts/2/