变量toggleClass

时间:2012-08-30 17:16:38

标签: jquery each toggleclass

我在运行.each函数时遇到困难,当单击其外部的链接时,可以打开/关闭div。该功能有效,除了我希望它适用于几个不同的div(现在,missiondiv和visiondiv)。所以我创建了一个变量前缀,它找到了一个span的id,并以此作为前缀运行该函数。 (对不起,如果那没有意义)。我的脚本仅适用于第一个span id。 http://jsfiddle.net/jessica_b/KMJPf/

链接的HTML:

<div id="whoweare">
<span id="mission"><a href='#'>Mission</a></span></br>
<span id="vision"><a href='#'>Vision</a></span></br>
</div>

div的HTML:

<div id="missiondiv" class="closed">Mission item</div>
<div id="visiondiv" class="closed">Vision item</div>

Javascript功能:

    $.each($("#whoweare").find("span").attr("id"), function(){
    var prefix = $("#whoweare").find("span").attr("id");
    $('#' + prefix + ' a').click(function() {
        $('#' + prefix + 'div').toggleClass("closed");
        $('#' + prefix + 'div').toggleClass("item block");
        $(this).toggleClass('active-page');
        $container.isotope('reLayout');
    });
});

它在同位素中运行,但所有这一切都在起作用。错误存在于上面的脚本中,我在jQuery中不够精通,无法诊断我的错误!谢谢!

1 个答案:

答案 0 :(得分:1)

$('#whoweare span a').each(function(index, element) {
    $(element).click(function() {
        var prefix = $(this).parent('span').attr('id');
        $('#' + prefix + 'div').toggleClass("closed");
        // other actions
       return false;
    });
});​

http://jsfiddle.net/MtX7p/16/

OR

$('#whoweare span').each(function(index, element) {
    $(element).find('a').click(function() {
        var prefix = $(element).attr('id');
        $('#' + prefix + 'div').toggleClass("closed");
        // other actions
       return false;
    });
});​

http://jsfiddle.net/MtX7p/17/

这是您的完整脚本:http://jsfiddle.net/KMJPf/49/