Javascript 发出多个ajax请求时,jQuery onclick事件不起作用
我在jQuery文件中提出了一些ajax请求。在这些jQuery请求成功后,我写了一些不起作用的点击事件Javascript 发出多个ajax请求时,jQuery onclick事件不起作用,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,我在jQuery文件中提出了一些ajax请求。在这些jQuery请求成功后,我写了一些不起作用的点击事件 function pagination(){ $(".class").click(function(event) { alert(); }); } $("#me").on("click", function(){ alert("me is triggered"); }); 这是我的密码 $(document).ready(function (){
function pagination(){
$(".class").click(function(event) {
alert();
});
}
$("#me").on("click", function(){
alert("me is triggered");
});
这是我的密码
$(document).ready(function (){
$.ajax ({
type: "POST",
url: 'myServlet',
async: false,
success: function (response) {
id = parseInt(response);
setOutputEvents();
}
});
function setOutputEvents() {
for (var queryNumber = 0; queryNumber <= id; queryNumber++) {
$.ajax({
type: "POST",
url: 'myOtherServlet',
data: {queryNumber: queryNumber},
success: success,
async: false
});
var success = function (response) {
//some code here
generateTable();
}
}
}
function generateTable () {
//some code here
pagination();
}
function pagination(){
$(".class").click(function(event) {
alert();
});
}
$("#me").on("click", function(){
alert("me is triggered");
});
});
我在Windows7上使用Google Chrome版本39.0.2171.95
如果需要进一步的信息,请务必告诉我。这将有效:
$(".class").on("click", function(){
alert("me is triggered");
});
function generateTable () {
//some code here
pagination();
}
function pagination(){
$(".class").trigger("click");
}
一些注意事项:
由于您使用ajax来加载初始内容,因此,.class/#me html元素可能不存在于DOM的初始页面加载中。由于您没有发布html,我猜情况就是这样 因此,您需要使用委托事件单击处理程序来响应它 所以,你会改变
$("#me").on("click", function(){
到
依此类推,将其链接到确实存在的父元素,即文档本身。同时使用async:false会破坏Ajaxusing
function success(){…}
可以工作,但将其设置在循环内没有意义,而且无论如何,我个人很难理解您关于多次绑定的代码逻辑events@mplungjan我使用ajax请求只是对servlet进行查询。我不需要ajax的异步行为。@A.Wolff我只是尝试一下。我知道这种方法会很慢,但我的问题是另一个问题。我认为通过让点击事件的执行等待整个DOM准备就绪,可以解决这个问题。i、 e.直到generateTable()函数完全执行。$(“document”)
返回空对象注意,由于OP使用同步请求,它无论如何不应该是click事件问题的委托,因为我可以在看到它时读取它(这当然可能不正确),因为同步调用包含在DOM就绪调用程序中,在从servlet调用传入这些html项之前,已经构建并注册了DOM。因此,委派事件是监听这些点击的方式。否?$(文档)。在(“单击”、“我”上,function(){
不幸的是,这不起作用!@briansol我的DOM只有在generateTable()函数完成后才能完成。因此,我的onclick事件应该只有在generateTable函数执行后才能执行。
$(document).on("click", "#me", function(){