Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
存储值并在javascript oops中重用_Javascript_Jquery_Oop - Fatal编程技术网

存储值并在javascript oops中重用

存储值并在javascript oops中重用,javascript,jquery,oop,Javascript,Jquery,Oop,我目前有3个div,可以超过3个,每个div都有一个锚定标记,锚定标记具有单击功能,可以在同一父级中打开UL。我想要的是,我可以打开UL并关闭它们,而不会影响另一个。我已经用oops的概念做了一个函数,但是它没有按照我想要的那样工作。单击两下即可获得下一个锚定标记。这可以通过oops逻辑完成,还是我们必须选择另一种方式 您可以完全按照自己的意愿使用: $('a').click(function(){ $(this).parent().find('ul').slideToggle() })

我目前有3个div,可以超过3个,每个div都有一个锚定标记,锚定标记具有单击功能,可以在同一父级中打开
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);
});