0

jQuery 1.3.2 を使用しています (drupal6 のため更新できません)

jQuery

$(document).ready(function() {
  var textcontent = $('.trig').text();

  $('.trig').click(function() {
    if (textcontent == 'Open') {
      $(this).text('Close').addClass('not-trig');
    } else if (textcontent == 'Close') {
      $(this).text('Open');
    }
  })
});

HTML

<div class="trig">Open</div>

私がやろうとしていること:

class .trig で div をクリックすると、テキスト「OPEN」が「close」に変更され、もう一度クリックするとその逆になります。しかし、クリックは一度しか機能しないようです。最初にクリックすると、テキストが「開く」から「閉じる」に変わりますが、もう一度クリックすると何も起こりません...

4

1 に答える 1

5

var textcontent = $('.trig').text();クリックするたびに値を再取得する必要があります

$(document).ready(function() {
    $('.trig').click(function() {
        var textcontent = $('.trig').text();
        if (textcontent == 'Open') {
            $(this).text('Close').addClass('not-trig');
        } else if (textcontent == 'Close') {
            $(this).text('Open');
        }
    })
});

デモ:フィドル

別のクリーンな実装は、クラスを探すことかもしれませnot-trigclose。つまり、テキストを削除する必要があるOpen場合がありますnot-trig

$(document).ready(function() {
    $('.trig').click(function() {
        var $this = $(this);

        if($this.hasClass('not-trig')){
            $this.text('Open').removeClass('not-trig');
        } else {
            $this.text('Close').addClass('not-trig');
        }
    })
});

デモ:フィドル

于 2013-06-14T10:27:25.767 に答える