更改事件并非在所有元素上都可用 - 因此即使 a 的内容也不会触发div
元素的内容发生更改,它也不会触发。
更改事件在表单元素上可用。
看起来您需要确定特定表单元素何时可用,您可以使用间隔进行检查:
var checkForInputTimer;
var checkForInput = function () {
if ($("#checkout_provider_checkout_moneyorder").length > 0) {
window.clearInterval(checkForInputTimer);
alert("Do your processing here");
}
};
checkForInputTimer = window.setInterval(checkForInput, 2000);
在这个例子中,我只是通过 id 检查元素,这是最有效的搜索,因为 id 必须是唯一的。
您也可以创建自定义事件,但您必须记住在用于更新div
元素的任何代码中触发事件。我为此创建了一个JS Fiddle:
$('div.provider_name').bind('contentChanged', function(event, data) {
if ($('#checkout_provider_checkout_moneyorder').length > 0) {
alert('Do your processing here');
}
});
无论您在哪里更新div
,都会触发此事件:
$('div.provider_name').html('<input type="text" name="example" id="checkout_provider_checkout_moneyorder" value="example">')
.triggerHandler('contentChanged');