在DOM更改时触发一次火灾事件

时间:2016-11-30 17:59:46

标签: javascript jquery events bind

我使用以下jQuery:

$('table').bind("DOMSubtreeModified",function(){
   myfunction();
});

该表的内容由另一个函数修改。但是,这会触发表中已更改的每个元素的上述内容。

在完成所有表格更改后,有没有办法只触发一次?

1 个答案:

答案 0 :(得分:3)

使用.one()为活动注册一次。在此代码段中,单击按钮向表中添加<td>,从而仅触发DOMSubtreeModified事件一次。注意对表的任何进一步修改都不会触发任何内容。

$('button').click(function() {
  $('table tr').append('<td>TEST</td>');
});


$('table').one("DOMSubtreeModified", function() {
  alert('MODIFIED');
});
table,
td {
  border: 1px solid black;
}
table {
  width: 300px;
  height: 50px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr>
    <td></td>
  </tr>
</table>
<button>addTD</button>