使用 jQuery 侦听未使用 jQuery.AJAX 加载的 AJAX 加载

Posted

技术标签:

【中文标题】使用 jQuery 侦听未使用 jQuery.AJAX 加载的 AJAX 加载【英文标题】:Using jQuery to listen for an AJAX load that is not loaded using jQuery.AJAX 【发布时间】:2011-02-19 11:04:43 【问题描述】:

好吧,有点棘手(无论如何,对我来说,我在 jQuery/javascript 方面相当垃圾)。

我正在使用标准 AJAX 提取数据(即,不使用像 jQuery 或诸如此类的框架......这是有原因的)

但是,一旦页面加载完毕,我就需要加载一个 jQuery 脚本。所以,问题来了,一旦更新了 DOM,我如何绑定脚本?我一直在使用 Ariel Fleser 的 listen 插件 (http://flesler.blogspot.com/2007/10/jquerylisten.html) 来接收诸如点击之类的事件,这是一种享受,但我不知道如何使用它来 listen 用于加载事件。

有什么想法吗?我对这个很困惑!

【问题讨论】:

正如马特在下面问的,“不使用 jQuery 提供的 AJAX 功能的原因是什么?” 【参考方案1】:

有什么问题:

yourXMLHTTPRequest.onreadystatechange = function () 
  if (this.readyState == 4) 
      doJQueryStuff();
  

另外,不使用jQuery提供的AJAX功能的原因是什么?

顺便说一句,您提到的那个插件看起来只是复制了 1.4 中引入 jQuery 的 live()delegate() 方法提供的功能

【讨论】:

呃,我完全没想到!可能是因为我感觉重病!尽管为快速响应而欢呼,但还是很享受!不使用 jQuery AJAX 位的原因只是出于偏好,并且它适用于大型系统。我确实看过它,但发现它不太适合所需。 我遇到了同样的问题,但对于一个非自我解决方案,我如何找出“yourXMLHTTPRequest”是什么?无法真正深入研究已编写的代码,但只想在调用完成后触发一个方法【参考方案2】:

为了解析通过 ajax 加载的 javascript,您需要使用 eval()。尽管就这些事情而言,许多程序员认为 eval() 是,嗯,邪恶的......(a link,another link)。

不管 eval 是对是错,webdeveloper 上的this thread 应该会让你在解决问题的道路上走得更远。

【讨论】:

这是很有趣的东西,说实话我不能说我特别擅长 javascript!我已经设法让它做我现在需要的事情

以上是关于使用 jQuery 侦听未使用 jQuery.AJAX 加载的 AJAX 加载的主要内容,如果未能解决你的问题,请参考以下文章

Angular 2 从 Jquery 调用 Typescript 函数会导致未捕获的 TypeError

使用 jQuery,为单选按钮设置 onClick 事件侦听器的最佳方法是啥?

使用事件侦听器(Javascript、jQuery)将 BG 颜色更改为随机颜色?

使用名称中的点调度 CustomEvent 不会触发 jQuery.on() 事件侦听器

在 Panel 中使用渲染时未调用 Primefaces Ajax 侦听器

用于 intlTelInput 的 jquery 无法添加事件侦听器