为什么jquery不适用于在Ajax中成功创建的新元素?

时间:2016-09-21 05:59:54

标签: jquery ajax

我想为什么jquery不适用于在Ajax成功中创建的新元素。其中一个原因可能是jquery和支持js文件已经在页面加载时加载。             如何解决这个问题。             有没有办法再次加载jquery和支持文件。

2 个答案:

答案 0 :(得分:0)

使用event delegation表示由ajax响应https://learn.jquery.com/events/event-delegation/创建的元素,例如,您需要(重新)初始化ajax调用/ s的成功函数中的插件的任何特定插件初始化

答案 1 :(得分:0)

假设您没有谈论任何插件,如果您想使用动态创建的元素,则应使用$(document).on('event', 'selector', func(){})代替$('#id').on('event', func(){})

示例:

这不适用于动态生成的元素:

$('input').keyup(function() {
    for (var i = 0; i < triggerWords.length; i++) {
        if ($(this).val().toLowerCase().indexOf(triggerWords[i]) != -1) {
            alert("Alert! You've typed a blocked word.");
        }
    }
});

demo

但这会:

 $(document).on('keyup', 'input', function() {
    for (var i = 0; i < triggerWords.length; i++) {
        if ($(this).val().toLowerCase().indexOf(triggerWords[i]) != -1) {
            alert("Alert! You've typed a blocked word.");
        }
    }
});

demo