1

jqueryを使用してテキストを更新しようとしていますが、.change()を使用していくつかの関数を起動しようとしていますが、何も機能しません。

<div class="btn btn-tag" data-toggle='dropdown'>
  Explore
</div>

このテキストがjQuery関数を使用して(jqueryで.text()を使用して)変更されても、アラートは発生しません。

 $(body).on('change','btn-tag',function() {
   alert('test');
 });

テキストを変更すると、アラートが表示されるはずですが、これはなぜですか?

4

2 に答える 2

2

変更イベントをbody、div、spanなどに適用することはできません。テキスト、チェックボックスなどの入力タイプに適用できます。コンテンツを定期的にプールして要素の子の変更をDOMNodeInserted確認DOMNodeRemovedするか、要素が追加または削除されました。詳細については、この投稿を確認してください。

$(body).on('DOMNodeInserted DOMNodeRemoved','.btn-tag', function(event) {
         if (event.type == 'DOMNodeInserted') {
        alert('Content added! Current content:' + '\n\n' + this.innerHTML);
    } else {
        alert('Content removed! Current content:' + '\n\n' + this.innerHTML);
    }
});

DOMNodeInsertedDOMNodeRemovedはすべての場所で機能するわけではなく、DOMNodeInsertedイベントはInternet Explorer 9でバグがあり、ノードが初めて挿入されたときに発生しないことに注意してください。参照

于 2013-02-05T06:27:58.210 に答える
2

ただし、Divはchange申請できるイベントを開催できません。click

  • でボディを委任''
  • クラスセレクタプレフィックス.

このような:

$('body').on('click','.btn-tag',function() {
   alert('test');
 });

しかし、あなたがあなたのdivをいくつかで更新しようとしているならdropdown values

このビンを試してください:http://jsbin.com/ulecom/1/edit

$('select').change(function(){
  if($('.btn-tag').text() == $('select').val()){
    alert('test');
  } 
});
于 2013-02-05T06:28:36.323 に答える