0

親LIが特定のクラス(.current)を持っていない限り、クリック関数をA要素に追加しようとしています。

以下は機能していないようです。

$('ul li:not(.current) a').click(function (e) {

これがjsFiddleです:

http://jsfiddle.net/WvPE7/

'ulli.currenta'に対してクリック関数を実行したくない-'ulli a'(.currentなし)のみ

確かに私は非常に単純な何かを逃しました...どんな助けもありがたいです!:)

4

3 に答える 3

2

を使用する代わりに、小さな条件を追加する必要があり:not('.current')ます。

if ($(this).parent().hasClass('current')) return;

実行する$('ul li:not(.current) a')とイベントがバインドされ、その時点でクラスcurrentのliはありません。

デモ:http: //jsfiddle.net/WvPE7/5/

完全なコード:

$('ul li a').click(function (e) {
    e.preventDefault();

    if ($(this).parent().hasClass('current')) return;

    $('p').hide();
    $('li').removeClass('current');
    $(this).parent().addClass('current');
    var myClass = $(this).attr('class');
    $('p.' + myClass).fadeIn();
});
于 2013-02-14T21:29:27.610 に答える
1

.on()次の方法を使用して、単純な委任でそれを行うことができます。

$('ul').on('click', 'li:not(.current) a', function(e) {
    // ...
});

.on() あなたはここでもっと知ることができます。


ここで動作しています:http://jsfiddle.net/WvPE7/7/

于 2013-02-14T21:34:41.760 に答える
-1

振り向く

$('ul li:not(.current) a').click(function (e) {

の中へ

$('ul').on('click', 'li:not(.current) a', function (e) {
于 2013-02-14T21:26:19.063 に答える