Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 发出多个ajax请求时,jQuery onclick事件不起作用_Javascript_Jquery_Html_Ajax - Fatal编程技术网

Javascript 发出多个ajax请求时,jQuery onclick事件不起作用

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 (){

我在jQuery文件中提出了一些ajax请求。在这些jQuery请求成功后,我写了一些不起作用的点击事件

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(){