我有一个jquery函数,用于检查是否选中了复选框,然后相应地显示或隐藏div。 我还有另一个函数,它添加了一个表单的新部分,其中包含一些带有类"禁用价格"的div。在其中,所以当添加新部件时,我会重新启动我的功能。
但是从那里开始,"改变"事件不再被触发......第一部分有效但第二部分无效。
ctrl+P
有什么想法吗?
答案 0 :(得分:0)
为了捕捉动态元素上的事件,您可以使用:
.delegate( selector, eventType, handler )
或
.on( events [, selector ] [, data ], handler )
以下是一个例子:
// wait for the document to be ready.
$(function(){ // equivalent to $(document).ready(function(){
var $disabledInfo = $('#invalidityInfo');
// initial check
if($disabledInfo.is(':checked')) {
$('.disabled-price').show();
} else {
$('.disabled-price').hide();
}
// create event listener
// use .on or .delegate to catch dynamic elements that are added on the fly
$('body').delegate('change','#invalidityInfo',function(){
if($this.is(':checked')) {
$('.disabled-price').show();
} else {
$('.disabled-price').hide();
}
});
})
希望这有帮助。