gpt4 book ai didi

ajax - jQuery:在任何 Javascript 事件触发之前通过 *非 jQuery* AJAX 添加目标元素?超出了 live() 的范围?

转载 作者:行者123 更新时间:2023-12-01 01:39:35 25 4
gpt4 key购买 nike

正在开发一个 Wicket 应用程序,该应用程序在 onLoad 之后通过 Wicket 的内置 AJAX 将标记添加到 DOM,以实现自动完成小部件。我们有一个 IE6 故障,这意味着我需要重新定位传入的标记,并且我试图避免篡改 Wicket javascript...等等等等...这就是我正在尝试做的事情:

  1. 新标记到达 DOM(我无权访问回调)
  2. 不知怎的,我知道这一点,所以我解雇了我的代码。

我尝试了这个,希望新标签能够触发 onLoad 事件:

 $("selectorForNewMarkup").live("onLoad", function(){ //using jQuery 1.4.1
//my code
});

...但是已经了解到 onLoad 仅在初始页面加载时触发。将元素添加到 DOM 时是否会触发另一个事件?或者另一种方式来感知 DOM 的变化?

我在添加新标记时遇到的类似问题,他们可以访问 .load() 或类似的回调函数,或者他们有一个真正的 javascript 事件可以使用,并且 live() 工作得很好。

这是一个白日梦吗?

最佳答案

.live() 不是这样工作的,这是一个常见的误解。 .live() 在 DOM 根创建一个事件处理程序并等待事件冒泡到它。如果选择器与事件目标匹配,.live() 将触发绑定(bind)事件。

它不会寻找新对象并以任何方式将事件绑定(bind)到它们,而是只是监听气泡,并且不关心该对象何时添加到 DOM。

当加载操作完成时,您需要触发手动运行所需的任何代码。

这是什么the livequery plug-in ,具体看livequery( matchedFn ) call .

你可以这样做:

$('#myID').livequery(function() { $(this).offset()...stuff });

关于ajax - jQuery:在任何 Javascript 事件触发之前通过 *非 jQuery* AJAX 添加目标元素?超出了 live() 的范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2530890/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com