这可能听起来像一个奇怪的问题,但希望有答案。
我的HTML页面中有许多选择和文本框。加载页面后,这些框会在某个时刻填充,我无法控制它们;我知道最终在页面加载后,这些框将被填充。
有没有办法创建一个可以检测何时填充这些内容的侦听器?
我一直在使用setInterval / clearInterval,但是我希望jQuery在填充这些内容时能够“监听”。
思想?
答案 0 :(得分:1)
如果用户设置了他们的值,您可以收听更改事件。
$(document).ready(function() {
$('input, select').change(function() {
var $changedElement = $(this);
if($changedElement.val() != '') {
// code to keep track of which elements are checked..
}
});
});
如果在页面加载后从脚本中将元素添加到页面中,则需要使用live
而不是change
$('input, select').live('change' function() {
....
});
答案 1 :(得分:0)
您可以使用trigger()
,触发 change
事件,change()
来监听change
事件:< / p>
$(document).ready(
function(){
// basically put .trigger('change') after whatever function populates the inputs
$('form input').populateInputFunction().trigger('change');
$('input').change(
function(){
// do whatever you want to do when the inputs are changed
});
});
如果没有看到您的代码,很难确切地说明如何在您的网页中使用它们,但希望上面的示例可以提供一些见解。
从你的问题来看,改变的来源也是模棱两可的。如果它来自你自己的jQuery操作,那么上面应该可以工作,如果它来自用户的操作,那么你只需要听取change()
上的input
事件(后一部分{{ 1}})。