重新启动jquery功能时不会触发更改

时间:2016-06-09 10:20:27

标签: jquery onchange

我有一个jquery函数,用于检查是否选中了复选框,然后相应地显示或隐藏div。 我还有另一个函数,它添加了一个表单的新部分,其中包含一些带有类"禁用价格"的div。在其中,所以当添加新部件时,我会重新启动我的功能。

但是从那里开始,"改变"事件不再被触发......第一部分有效但第二部分无效。

ctrl+P

有什么想法吗?

1 个答案:

答案 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();
        } 
    });


})

希望这有帮助。