我想为什么jquery不适用于在Ajax成功中创建的新元素。其中一个原因可能是jquery和支持js文件已经在页面加载时加载。 如何解决这个问题。 有没有办法再次加载jquery和支持文件。
答案 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.");
}
}
});
但这会:
$(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.");
}
}
});