Jquery AJAX页面上的事件问题

Jquery AJAX页面上的事件问题,jquery,ajax,internet-explorer,events,Jquery,Ajax,Internet Explorer,Events,我有一个asp页面,它使用jQueryAjax在加载页面后将成员计数加载到一堆divs中 它在FireFox中工作得非常好,并且与拥有少量组的客户机配合使用 对于少数拥有多个组(500+)的客户端,我在IE中遇到了一个错误。ajax调用似乎是同步运行的,因为在每个ajax调用返回之前,单击事件不会注册 ajax请求系列对于大多数客户机来说只是一个请求。对于具有大量组的客户端,它只被分解为多个请求 现在,我已经看到了$(“a”)中的错误。如果在加载DOM后添加链接,则不会绑定click函数。不起作

我有一个asp页面,它使用jQueryAjax在加载页面后将成员计数加载到一堆
div
s中

它在FireFox中工作得非常好,并且与拥有少量组的客户机配合使用

对于少数拥有多个组(500+)的客户端,我在IE中遇到了一个错误。ajax调用似乎是同步运行的,因为在每个ajax调用返回之前,单击事件不会注册

ajax请求系列对于大多数客户机来说只是一个请求。对于具有大量组的客户端,它只被分解为多个请求

现在,我已经看到了
$(“a”)中的错误。如果在加载DOM后添加链接,则不会绑定click
函数。不起作用的链接没有被AJAX加载,它们不属于这一类

以下是伪代码:

ready()
{
    // count the number of groups that this user has, adding the ids to a list
    if( count < 50 )
    {
        runAjax();
    }
    else
    {
        // this calls the ajax request on groups of 50 ids
        // it pauses briefly after each request by using setTimeout to call the next
        runAjaxRecursively();
    }
}
<>无论如何,代码工作良好,所以请考虑任何错误作为拼写错误。唯一的问题是,在IE中,在每次ajax调用返回之前,不会触发click事件

有人知道为什么会发生这种情况吗?请注意,我正在将
async
设置为true

这与IE中如何处理jQuery的ready事件有关吗


我很困惑,为此花了几天时间,所以任何想法都值得赞赏。

您的问题是您没有给浏览器时间,请尝试在递归循环中添加一点setTimeout,让浏览器有时间处理其他事件,记住您只有一个线程可供使用。您最好尝试只进行一次调用,并使用jtemplates和json来处理数据和呈现标记,而不是返回繁重的html


另外,您提到的bug不是bug,jQuery只绑定当时存在的元素的处理程序。如果您有动态内容,最好使用事件委派来处理动态元素的单击事件。这样,您就不会显式地绑定每个元素,而是将click事件绑定到一个静态容器。然后,您可以查询event.target,查看调用事件的元素是否是您所需的元素之一,如果是,则处理所需的行为。这样做的好处是,您不必为dom增加多个绑定事件和动态内容的负担。

成功函数是否正在更新表内容?IE大表呈现非常糟糕。

json和1 ajax调用方式如何:)或者如果您无法链接或模拟失败行为的示例,我可以调试如果我只使用1个ajax调用,则返回所需时间太长-用户将在返回结果之前离开页面浏览。失败的行为是冻结。在所有请求返回之前,它不会转到单击的链接。我很想将您链接到实际的错误-但如果您使用json,我将不得不放弃客户infoPaul,因为它不会花费那么长时间(记住,它比html少80/90%的内容)除非你说的是一个愚蠢的数据量,在这种情况下,可能是实际需要的重构!!!
// run the HTTPRequest
$.ajax({
    async: true,
    type: "POST",
    url: "emailcatcount.asp?idList="+idList,
    data: "idList="+idList,
    dataType: "html",
    success: function(html) { // blah blah blah }
});