问题标签 [jquery-on]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
117 浏览

jquery - .live() jQuery - 如何更改我的事件

如何将这些事件更改为 .live() 事件处理程序?

我以为我可以将 $(document).ready(function() ...to.... $(document).live(function() 以及 .keydown 和 .data 更改为 .live 但我不能似乎让它工作......请帮助。

0 投票
2 回答
2961 浏览

jquery - jQuery .on() 有时有效,有时无效

我有奇怪的问题。起初我不想使用 .on() 方法,因为我根本无法让它工作,所以我使用了 .live()。

现在,我正在编写一个新的 jQuery 脚本,我大量使用了 .on() 并且它可以工作。到目前为止。

jQuery代码:

HTML 代码:

也试过这种方法:

没运气。我错过了什么?

这是唯一不起作用的部分

我已阅读有关 .on() 的文档,并基于此,这应该可以工作。另外,我正在使用最新的 jQuery (jquery-1.8.3.min.js)。

编辑

<a>元素在 CSS 中有一个width: 15pxand height: 15px,所以它们是可见的。

0 投票
2 回答
57 浏览

this - 使用 on() 时如何引用 $(this)

on()习惯于模仿live(),但终生无法弄清楚如何正确引用$(this),因此它引用了我传入的选择器。这是代码,$(this)返回"body"而不是"select".

0 投票
2 回答
257 浏览

jquery - 1.7.2 中的 jQuery 事件委托

有没有办法使用 jQuery 委托事件,该事件将对应于页面上与选择器匹配的所有元素,而不是委托 from $(document)

由于这可能措辞不佳,因此问题如下:

过去jQuery.live,所有与选择器匹配的元素都有委托事件。这被jQuery.delegate哪个将特定上下文选择器中的事件委托给其子级所取代,而后者又被 取代jQuery.on,后者实际上做同样的事情,但在幕后有不同的位(我想)。

我想要做的是安全地为div.foo我页面上的每个页面添加一个事件处理程序,无论它可能存在于何处或何时存在。根据文档和实证研究,以下内容只会绑定到.foo脚本运行时存在的元素。由于.foo稍后可能会在页面上放置元素的代码,因此这并不完全有效。

由于live已弃用(可能已删除?),我试图不使用它,但我能想出的唯一解决方案是

但这不是live最初在幕后所做的吗?更重要的是,有什么重要的理由这样做吗?

我们专门使用版本 1.7.2,但通用 jQuery 答案也会有所帮助。

0 投票
4 回答
379 浏览

html - jQuery悬停在不工作的现场作品上

我遇到了问题

在尝试了.on('hover',之后.hover(),两者都不起作用,我尝试了.live('hover',).live('hover',)工作.. 但是,我使用的是 jQuery 1.8.3,这是为什么呢?这是我正在使用的代码:

jQuery

HTML

有时我想知道我只是在犯愚蠢的错误还是语言只是疯了..

0 投票
5 回答
1893 浏览

javascript - jQuery - 将 .live 转换为 .on 点击

可能重复:
jQuery 1.7 - 将 live() 转换为 on()
.live() 与 .on() 方法

我有以下代码(我已经为此简化了)与 jquery-1.7 一起工作得很好。

我正在尝试升级我的代码,所以我可以升级我的 jQuery 包版本,所以我把它改成了这个。

但这并没有做任何事情。它也不会抛出任何错误,所以我看不出问题出在哪里。

有任何想法吗?

0 投票
2 回答
2595 浏览

dom - 如何在 DOM 加载后引用动态添加的元素而不需要对任何事件采取行动?

我知道 JQuery 有.on并且.live (deprecated)可以使用,但是那些假设您想要将事件处理程序附加到动态添加的元素的一个或多个事件,而我没有。我只需要引用它,这样我就可以访问它的一些属性。

更具体地说,有多个像这样的动态元素都带有class="cluster"set 并且每个都有不同的值:title 属性、top 属性和 left 属性。

这些 jquery 选项都不起作用:

同样,我不想附加任何事件处理程序,所以.on即使我要劫持它,添加一个虚假事件、一个 doNothing 处理程序,然后只引用我的属性,这似乎也不是正确的解决方案。
一定有更好的解决方案。有任何想法吗?

更新:
我错误地说明了标题,因为我的意思是元素是动态添加到 DOM 中的,但不是通过 JQuery。标题已更新。

0 投票
2 回答
385 浏览

jquery - jQuery on() 方法,点击和元素类名称在页面上的任何位置触发

最近我将 jQuery 升级到 1.9,我现在的主要问题是将所有 live() 方法转换为 on()。

我在一些情况下取得了成功,但我还有一些其他的方法表现得很奇怪。

以以下为例:

'clickReplace' 类可以分配给 'a'、'span' 或 'div' 标记,并且可以在 ajax 调用后(动态)添加到 DOM。

当我使用上述内容时,每次单击页面上未分配此类的任何链接都会触发 e.preventDefault() - 我无法在页面之间导航 - 就好像它已绑定到“文档”而不是比文档树中具有指定类的元素。

知道可能是什么原因造成的,我应该怎么做才能使它起作用?

0 投票
1 回答
2408 浏览

jquery - jQuery On 的问题,特别是 iPad

阅读了它并多次被“告知”使用live,而不是on我将所有代码移到on......并且遇到了很多麻烦!

我已经克服了大部分,但是今天我遇到了一个非常奇怪的问题。

我有一个问题/答案公告板的东西,其中显示了消息标题,但在单击标题时会动态加载内容,HTML 是

因此,我们有一个headerRow容器,其中有一些用于关闭或删除消息线程的按钮,然后是一个span包含消息详细信息、用户名、电子邮件主题的按钮,然后是一个用于打开回复表单的按钮。

带类的跨度openCurrent在绑定上有一个 jQuery,如下所示:

现在,这在我的 PC 上完美运行,但在 iPad 上不可靠。

它有时会起作用,我无法弄清楚它为什么/何时会起作用的任何模式。

我最初的on绑定看起来像这样:

但是在阅读了移动 Safari 中的一个错误之后,这里:

jQuery .on() 和 .delegate() 在 iPad 上不起作用

我将其更改为身体,但对行为没有影响。

我之前也注意到,click除非在这种情况下元素具有 CSS,否则移动 Safari 不会触发事件cursor:pointer,我已经有了它,因为它在桌面 GUI 上视觉上是有意义的。

有人有什么想法吗?

编辑:

它在 iPad 上的 Chrome 中也不起作用!

附加编辑:

我也尝试将点击事件绑定到headerRow元素,但遇到同样的问题

0 投票
1 回答
157 浏览

javascript - jQuery on() 或 live

我正在尝试使用下面的代码。它按预期在 Firefox 上运行良好,但是当我尝试 IE 或 Chrome 时,onorlive方法不会触发。有人可以帮我吗?