2

だから私はデータ属性に格納された文字列を切り替えるためにボタンのテキストを取得しようとしています:

<button class="toggleButton6 book1" data-starttext="Starting Text" data secondtext="Toggled Text">Starting Text</button>

これまでのところ、最初のクリック イベントに対してのみテキストを変更できます。無制限のクリック イベントでテキストを前後に切り替えるには、何かを追加する必要があります。

$(document).ready(function(){
  $('.book1').on('click', function(){
    var textVariable = $(this).data("secondtext");
    $(this).text(textVariable);
  });
});

http://codepen.io/nigelNSF/pen/Dfpak

4

4 に答える 4

8

as があるので2つのデータは必要ないので、firsttext以下button.text()のようにhtmlを変更して1つのデータだけにします。toggletext

<button class="toggleButton6 book1" data-toggletext="Toggled Text" >Starting Text</button>

そして、以下のようにスクリプトでtoggletextとの値を切り替えます。button.text()

$(document).ready(function(){
  $('.book1').on('click', function(){
        var textVariable = $(this).data("toggletext");          
        $(this).data('toggletext', $(this).text()).text(textVariable);

  });
});

デモ: http://codepen.io/seraphzz/full/IJLBi

于 2013-06-07T16:46:37.467 に答える
0

他の誰もが言うように、テキスト フィールドの値と比較するstarttextか、それsecondtextに応じてテキスト フィールドの値を明示的に設定して、テキストの状態を確認する必要があります。

$(document).ready(function(){
  $('.book1').on('click', function(){
    var second = $(this).data("secondtext");
    var start = $(this).data("starttext");
    if (second === $(this).text()) {
      $(this).text(start);
    } else {
      $(this).text(second);
    }
  });
});

これが実際の例です。

于 2013-06-27T02:13:41.720 に答える
0

これを試して:

$(document).ready(function(){
  $('.book1').on('click', function(){
      var textVariable = $(this).data("secondtext");
      var temp = $(this).text();
      $(this).text(textVariable).data("secondtext", temp);
  });
});
于 2013-06-07T16:45:10.100 に答える
0
$(document).ready(function(){
  $('.book1').on('click', function(){
    if ($(this).text() == $(this).attr('data-starttext'))
        $(this).text($(this).attr('data-secondtext'));
    else 
        $(this).text($(this).attr('data-starttext'));
  });
});
于 2013-06-07T16:45:29.553 に答える