为什么jQuery必须将未来元素的属性连接到基于用户的事件,而不是仅仅侦听和操作?

为什么jQuery必须将未来元素的属性连接到基于用户的事件,而不是仅仅侦听和操作?,jquery,Jquery,在这件事上我真是束手无策。在过去的几周里,我不断地碰到这个问题,我开始怀疑为什么这不是jQuery的一个基本方面 我只想让jQuery监听未来的元素并对它们进行处理 但是 不用我把它和任何事件联系起来 .live()需要一个事件来完成一些事情 当然,这里有点像生活,但我可以说: $('div').live(function() { //just do stuff to current and future elements //without me having to init

在这件事上我真是束手无策。在过去的几周里,我不断地碰到这个问题,我开始怀疑为什么这不是jQuery的一个基本方面

我只想让jQuery监听未来的元素并对它们进行处理

但是

不用我把它和任何事件联系起来

.live()需要一个事件来完成一些事情

当然,这里有点像生活,但我可以说:

$('div').live(function() {
    //just do stuff to current and future elements 
    //without me having to initiate it with events
});
之所以需要这样做,是因为我的帖子是通过另一个javascript文件动态加载的。如果是jQuery,我可以只听它并给出一个事件

是加载新内容的javascript文件。 是我需要添加行为的jquery文件


编辑:这是为这个网站,但我不认为这是完全需要的问题。干杯


=======

但是,您需要一些事件来触发操作。如果你只是做了这样的事情:

$('div').live(function() {
它与任何动作、条件或事件都没有关联。什么时候触发?所有事件处理程序都必须具有某些指定的触发器或事件

如果您要求的是对象首次出现在DOM中时发生的事件,则浏览器中不存在该事件。相反,您需要做的是在元素添加到页面后触发代码(通常在Ajax调用的成功处理程序上),并在此时检查页面中的新内容


看起来您在问题中添加了更多信息,表示您想知道其他脚本何时更改了您的页面。这不是任何浏览器都支持的。你的选择如下:

  • 收听现有事件(单击、鼠标等),该事件指示相关更改已发生或可能已发生
  • 使用正在修改页面的代码中内置的一些现有通知方案(如果存在这种情况)
  • 修改更改页面以呼叫您的脚本,以便您可以在正确的时间执行其他工作
  • 使用计时器轮询页面以查找新内容

  • 你能不能把它附加到加载事件上?你是说在动态创建元素时,做点什么?如果你想让插件应用到动态添加的元素上,我会给你加上1,但是考虑一下这个;jQuery(或浏览器等)不知道何时触发事件。请看一下livequery插件。@Joseph我想你说得有道理。当页面上开始加载某些内容时,是否可能触发函数?这就是我所需要的!我可以做一些类似于
    的事情吗?如果新内容加载到文档中,我可以做一些
    ?我稍微澄清了这个问题。事件是由其他地方的javascript文件触发的,因此我无法将live附加到任何事件,因此在这种情况下可以做什么?我根据您的新信息在我的答案中添加了一些注释。谢谢jFriend。你能看一下添加内容的脚本吗?这是一只丑陋的野兽。事实是,它也是唯一已知或广泛使用的tumblr无限滚动脚本(其他脚本不起作用,viva tumblr)。实际上,我已经设法让它在函数addNextPage(第204行)和watch_scroll(第229行)中调用ajax微调器进行加载。问题是,我只能用我在那个文件中创建的元素来做一些事情。至少对我来说,任何页面本机对象都不可能在这个文件中引用,我总是会出错。除非。。。有没有可能突然将jquery代码注入到javascript文件中我需要的地方?类似于在html中注入php的方式?然后,每当有新的元素实例需要遍历时,我就可以执行“.each()”@RGBK-抱歉,但我并不真正了解您试图拦截的事件和对象。