问题是,我有一些动态创建的输入标记集,并且我还有一个函数,该函数在输入值发生变化时触发。
$('input').on('change', function() {
// Does some stuff and logs the event to the console
});
但是,.on('change')
不会为任何动态创建的输入触发,只会为加载页面时存在的项触发。不幸的是,这让我有点为难,因为.on
是.live()
和.delegate()
的替代品,所有这些都是.bind()
的包装器:/
还有没有其他人遇到过这个问题或者知道解决方案?
发布于 2012-11-16 22:53:33
您应该为on
函数提供一个选择器:
$(document).on('change', 'input', function() {
// Does some stuff and logs the event to the console
});
在这种情况下,它会像您预期的那样工作。此外,最好指定一些元素而不是文档。
阅读这篇文章可以更好地理解:http://elijahmanor.com/differences-between-jquery-bind-vs-live-vs-delegate-vs-on/
发布于 2016-05-05 18:58:44
使用这个
$('body').on('change', '#id', function() {
// Action goes here.
});
发布于 2018-05-02 15:14:50
可以使用以下几种方法中的任何一种:
$("#Input_Id").change(function(){ // 1st way
// do your code here
// Use this when your element is already rendered
});
$("#Input_Id").on('change', function(){ // 2nd way
// do your code here
// This will specifically call onChange of your element
});
$("body").on('change', '#Input_Id', function(){ // 3rd way
// do your code here
// It will filter the element "Input_Id" from the "body" and apply "onChange effect" on it
});
https://stackoverflow.com/questions/13418963
复制相似问题