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 等,而可以应用于文本、复选框等输入类型。您可以定期合并内容以检查元素子项中的更改,或者您可以使用DOMNodeInsertedDOMNodeRemoved检查元素是否添加或删除,有关详细信息,请查看此帖子

$(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);
    }
});

请注意,DOMNodeInserted并且DOMNodeRemoved并非在所有地方都有效,并且 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 回答