如何捕获onchange事件

时间:2014-10-10 06:51:52

标签: javascript jquery html

我需要在下面的TD上捕获更改事件。每当其内容发生变化时(在这种情况下"罗斯蒙特测量"),我需要调用一个函数。我不认为接受" onchange"属性......这就是问题所在。可以这样做吗?

<TD style="PADDING-LEFT: 6px; CURSOR: default" id="A0.R0.Indexed Pick 3" class="fv fvu" title="Rosemount Measurement" _savedBKClr>Rosemount Measurement</TD>

我将发布代码较大部分的打印屏幕,其中包含上述行(如果有帮助)。

context for code

3 个答案:

答案 0 :(得分:0)

我建议使用自定义事件,例如contentchange,并从src中触发,使内容发生变化。

订阅活动

$('table.yourClassName').on('contentchange', 'td', fn);

内容更改代码

$(refToTheTd).trigger('contentchange');

答案 1 :(得分:0)

TD没有更改事件,因为它没有值,它只保留一些文本。它为它创建自定义事件的唯一方法(您需要在更改内部文本后自己触发事件)

&#13;
&#13;
setTimeout(function() {
  $('td').text(function() {
    return this.innerHTML + '... success?';
  }).trigger('custom:td:name_whatever.event');
}, 1000);

$('td').on('custom:td:name_whatever.event', function(){
  alert(this.innerHTML);
});
&#13;
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table>
  <tr>
    <td>Test</td>
  </tr>
</table>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

我找到了一个可以满足我的要求的解决方案,但我还没有调整它(仍然试图弄明白):

//assume tbl has id foobar
document.getElementById('foobar').addEventListener('change',function(e)
{
    e = e || window.event;
    var target = e.target || e.srcElement;
    var name = target.id || target.getAttribute('name');
    alert('the ' + name + ' element changed!');
},false);

不幸的是,上面提供的两个解决方案不符合我的要求。