使用jquery更新文本时,.on()更改函数不会触发

时间:2013-02-05 06:26:37

标签: jquery ajax onchange

我尝试使用jquery更新文本,我尝试使用.change()来解决一些函数,但没有任何作用。

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

当使用jQuery函数更改此文本时(在jquery中使用.text()),它不会发出警告:

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

当它改变文字时,它应该提醒,但它不是为什么会这样?

2 个答案:

答案 0 :(得分:2)

您不能将更改事件应用于body,div,span等,而是可以应用于输入类型,如文本,复选框等。您可以定期汇集内容以检查元素子项的更改,或者您可以使用{{1 }和DOMNodeInserted检查是否添加或删除了元素,有关详细信息,请查看此post

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); } }); DOMNodeInserted在Internet Explorer 9中的每个位置都不起作用且DOMNodeInserted事件是错误的,第一次插入节点时不会触发reference DOMNodeRemoved }。

答案 1 :(得分:2)

Div不能change这个事件可以申请click

  • 委托机构''
  • 类选择器前缀.
像这样:

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

但是,如果您尝试使用某些dropdown values更新div:

试试这个垃圾箱: http://jsbin.com/ulecom/1/edit

$('select').change(function(){
  if($('.btn-tag').text() == $('select').val()){
    alert('test');
  } 
});