无法将事件处理程序添加到使用.getJSON()创建的内容

时间:2011-12-29 13:55:00

标签: javascript jquery json

为清晰起见而编辑了问题

我使用$.getJSON()方法进行AJAX调用,并在回调函数中向页面添加一些元素:

$.getJSON("pathToFile/file.json", function(data) {
    $.each(data.lst, function(i, item) { /* Add HTML elements to the page.. */ });
});

这一切都正确显示,但我为元素添加的事件处理程序不起作用:

$(".newElement").on("click", "input", function() {
    alert("Something happened..");
});

点击输入元素后没有任何反应。我错过了什么?

解释

正如@jbabey所指出的那样,the documentation for .on()表示你必须将事件处理程序绑定到现有元素。代码不起作用,因为在应用事件处理程序时元素不存在。

1 个答案:

答案 0 :(得分:1)

您是否在任何地方遇到任何错误,或者什么都没有发生?您是否能够在流量中看到任何有用的信息(小提琴手,萤火虫等)?

我建议您将$ .getJSON的使用情况更改为$.ajax,以便添加错误处理程序,然后我们就可以调查实际问题。

有关使用jQuery进行ajax调用的不同方法的好文章可以在这里找到: http://net.tutsplus.com/tutorials/javascript-ajax/5-ways-to-make-ajax-calls-with-jquery/