动态创建的角度元素不响应事件

时间:2015-04-05 19:39:23

标签: jquery

我正在使用angularjs向我的屏幕添加元素,最初因为.live在jQuery中被折旧我正在执行以下操作:

    var CHECK_INTERVAL = 100; //100 = 1/10th second, choose appropriate 
    function checkForElement() {
        $('input[type=checkbox]').each(function (index) {
            $(this).bootstrapSwitch();
            $('input[id^="chk"]').on('switchChange.bootstrapSwitch', function (event, state) {
                //alert('got here!');
            });
        });
        setTimeout(checkForElement, CHECK_INTERVAL);
    }
    setTimeout(checkForElement, CHECK_INTERVAL);

在我必须使用初始页面加载后显示的新元素之前,一切都运行良好。

我有以下代码操作代码的另一部分:

        $('input[id^="chk"]').on('switchChange.bootstrapSwitch', function (event, state) {...

但是,在页面加载后创建的新元素看不到此代码。

我该怎么做才能让新创建的元素看到上面的代码,检查是否点击了复选框?

1 个答案:

答案 0 :(得分:1)

您必须使用:

$(document).on(event, element, function() {});

关于你的案子:

$(document).on('switchChange.bootstrapSwitch', 'input[id^="chk"]', function (event, state) { ... }