我有两个使用.getJSON获取JSON对象的ajax函数,然后使用这些对象的内容构建一个表和下拉菜单。这很好。现在,我正在尝试将事件附加到位于表的第一列中的每个复选框。当然,我希望在ajax调用完成后发生这种情况。 JQuery的.when()函数似乎是一个很好的解决方案,因为它会等到两个ajax函数都完成。以下是我的代码。我不确定我做错了什么。由于某种原因,.when函数内部的警报不会触发。有人可以指出我做错了吗?
$(document).ready(function () {
$.when(createSpotsTable(), createMarketDropDown(1))
$('input:checkbox').click(function () {
$('input:checkbox').change(
alert("Hello world!")
);
});
});
答案 0 :(得分:1)
看来你的代码遗漏了一些东西。例如,您没有注册$.when
返回的对象的任何回调。这意味着,当Ajax调用完成时,不会执行任何代码。相反,$('input:checkbox').click(...)
将立即执行
也许您认为$.when
阻止了执行,但事实并非如此。看看documentation。
此外,您将{{1>}的返回值指定为事件处理程序,但您必须将函数传递给alert
。< / p>
我认为你想要的是:
.change
但您不必使用$.when(createSpotsTable(), createMarketDropDown(1)).done(function() {
$('input:checkbox').change(function () {
alert("Hello world!")
});
});
,您只需使用事件委派:
$.when
答案 1 :(得分:0)
使用直播活动,
jQuery.getJSON('xyz.com',function(){
$('input:checkbox').live('click',function () {
// Do you processing.
})
});