0

.each 関数を実行して、div の外側のリンクがクリックされたときに div のオン/オフを切り替えるのに問題があります。関数は機能しますが、いくつかの異なる div (現在、missiondiv と visiondiv) で機能することを除いては機能します。そこで、スパンの ID を検索し、これをプレフィックスとして関数を実行する変数プレフィックスを作成しました。(それが意味をなさない場合は申し訳ありません)。私のスクリプトは、最初のスパン 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 に習熟していません! ありがとう!

4

1 に答える 1

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/

また

$('#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/

于 2012-08-30T18:03:55.930 に答える