-1

作成したばかりの div.wrap()が表示されているかどうかを確認する際に、奇妙な問題が発生しています。いくつかの div をラップし、それらの ID をターゲットとして使用しています。クリックが実際に に登録されていることを確認するためにテストしましたがalert()、そうです。

これがコードです。

//Leftbar jQuery
$('ul.leftnav').wrap('<div id="leftnav-wrap" class="five columns alpha" />');
$('#leftnav-wrap').prepend('<div class="arrow" />');
$('#content').has('#leftnav-wrap').find('#page').wrap('<div class="eleven columns omega" />');

//Mobile Leftbar
$('h4.mobile.toggle').click(function(){
    if ($('#leftnav-wrap').is(':hidden')){
        $(this).addClass('active');
        $('#leftnav-wrap').addClass('active');
    }
    else{
        $(this).removeClass('active');
        $('#leftnav-wrap').removeClass('active');
    }
});

私がコード化したものに本質的に何か問題がありますか? 想定されているアクティブなクラスのいずれも切り替えません。また、別のサイトが正常に動作していますが、によって作成されたばかりの ID を対象としていないだけです.wrap()

ここの JSfiddle: jsfiddle.net/ZD7hz。クラスを切り替えない

4

1 に答える 1

0

ということで、本題でした。クラスを追加する非表示の div が見つからず、クラスを削除する表示されている div も見つかりませんでした。したがって、クリックしても何も起こりませんでした。

CSS を使用して leftnav を事前に非表示にし、.active状態のクラスを追加して、再度表示する必要がありました。その後、トグルは正常に機能します...

おっと!

固定された jsFiddle はこちら: http://jsfiddle.net/ZD7hz/1/

于 2013-09-24T17:14:16.063 に答える