问题标签 [event-delegation]

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 投票
1 回答
440 浏览

javascript - 在所有 textarea 之上自动初始化富文本编辑器,包括通过 ajax 加载的那些

我正在开发一个 ajax 繁重的网络应用程序,并希望textarea's (with class="ui-richtext") 自动初始化 TinyMCE。

这对于正常加载的 textarea 来说很容易,但是对于使用 ajax 之后加载的内容呢?

我在想一些事情:(我正在使用jquery)

不幸的是,这似乎不起作用。有任何想法吗?

这是我的第一篇文章,如果我需要添加更多信息,请告诉我

0 投票
7 回答
22928 浏览

javascript - 如何使用 jquery live 停止事件冒泡?

我正在尝试停止一些事件,但 stopPropagation 不适用于“实时”,所以我不知道该怎么做。我在他们的网站上找到了这个。

实时事件不会以传统方式冒泡,并且无法使用 stopPropagation 或 stopImmediatePropagation 停止。例如,以两个点击事件为例——一个绑定到“li”,另一个绑定到“li a”。如果点击内部锚点,两个事件都会被触发。这是因为当一个 $("li").bind("click", fn); 绑定你实际上是在说“每当 LI 元素或 LI 元素内部发生点击事件时 - 触发此点击事件。” 要停止对实时事件的进一步处理,fn 必须返回 false

它说 fn 必须返回 false 所以我试图做的

但这没有用,所以我不确定如何让它返回 false。

更新

这是更多信息。

我有一个表格单元格,并将单击事件绑定到它。

所以 AddApointment 只是制作了一些 ui 对话框。

现在实时代码(MoreAppointments)位于这个表格单元格中,基本上是一个锚标记。因此,当我单击锚标记时,它首先转到上面的代码(addApointment - 所以首先运行该事件)运行但不启动我的对话框,而是直接转到(MoreAppointment)事件并运行该代码。一旦该代码运行,它就会从“addApointment”启动对话框。

更新 2

这是一些html。我没有复制整个表格,因为它有点大,并且所有单元格都使用相同的数据重复自身。如果需要,我会发布它。

0 投票
3 回答
4818 浏览

actionscript-3 - flex中的target和currenttarget有什么区别?

谁能告诉我flex中target和currenttarget之间的区别?

0 投票
3 回答
1333 浏览

javascript - 使用 HTML5 数据属性的 MooTools 事件委托

是否可以使用 MooTools 中的 HTML5 数据属性进行事件委托?

我拥有的 HTML 结构是:

而且我想设置为<div id="parent">收听具有该属性的子元素的所有点击。data-selected

如果我做错了什么,请告诉我:

事件被设置为:

但是单击回调会在单击所有 div 时触发,而不仅仅是定义了 data-selectable 属性的那些。你可以在http://jsfiddle.net/NUGD4/上看到这个例子

一种解决方法是将其添加为 CSS 类,它与委托一起使用,但我希望能够使用数据属性,因为它在整个应用程序中使用。

0 投票
2 回答
5140 浏览

javascript - 以编程方式触发的事件不适用于事件委托

如果有人能帮我弄清楚为什么我在 MooTools 中使用事件委托(来自Element.Delegation课堂)时无法以编程方式触发事件,我将不胜感激。

有一个父级在某些子元素上<div>有一个change监听器。<input>当用户操作触发更改事件时,父 div 上的处理程序被触发,但是当我fireEvent在任何子输入上以编程方式触发它时,什么也没有发生。基本设置是:

html

js

不会调用父 div 上的事件处理程序。任何帮助表示赞赏。


fireEvent相关问题:在 DOM 树中是否触发了冒泡事件?我目前的黑客是在本地调度正在工作的事件(但仍然是黑客)-http: //jsfiddle.net/SZZ3Z/1/

0 投票
1 回答
6922 浏览

jquery - 在 jQuery 验证插件中自定义事件委托

我目前正在设置 jQuery 验证插件以在我们的项目中使用。

默认情况下,会自动设置一些事件进行处理。即焦点输入/输出,所有输入触发验证的按键事件。我希望它仅在单击提交按钮时触发。

这个功能似乎是内置在插件中的,这使得它很难做到(不修改插件代码,不是我想要做的)。

我在插件代码原型方法中找到了eventDelegate函数调用:

当我从插件中删除这些行时,我得到了我的结果,但是我更愿意在插件之外做一些事情来实现这一点。

有人可以帮我吗?如果您需要更多详细信息,请告诉我。我搜索了谷歌,但收效甚微。

谢谢

编辑:我基本上只是在触发提交事件时才尝试验证表单。默认情况下,每次输入控件失去焦点时,插件都会进行验证。

0 投票
3 回答
445 浏览

javascript - 如何重构此 JavaScript 代码以避免在循环中生成函数?

我为我正在处理的项目编写了以下代码:

我想做的是:

  • 定义一个二维数组,每个实例的内部数组包含两个元素:一个id属性值(例如,“相关搜索”)和相应的描述(例如,“相关搜索”);
  • 对于每个内部数组,找到document具有相应id属性的元素,然后收集其中所有<a>元素(超链接)的集合;
  • 循环遍历该集合并将onclick处理程序附加到每个应该调用的超链接,clicky.log作为参数传入与“相关搜索”对应的描述id(例如,“相关搜索”的id“相关搜索”)和元素的href属性值<a>被点击了。

希望这不是完全混乱!代码可能比这更不言自明。

我相信我在这里实现的是一个闭包,但是 JSLint 抱怨:

http://img.skitch.com/20100526-k1trfr6tpj64iamm8r4jf5rbru.png

所以,我的问题是:

  • 我怎样才能重构这段代码以使 JSLint 符合要求?或者,更好的是,无论 JSLint 怎么想,是否有一种我错过的最佳实践方法?
  • 我应该改用事件委托吗?也就是说,将onclick事件处理程序附加到具有我数组document中的属性的元素id,然后查看event.target? 我以前做过一次并且理解了这个理论,但是我对细节很模糊,并且希望得到一些关于它是什么样子的指导——假设这是一种可行的方法。

非常感谢您的帮助!

0 投票
1 回答
374 浏览

firefox-addon - 从 FF 沙箱中触发点击事件

我正在尝试从 Firefox 沙箱中触发页面上元素的点击事件。我尝试过使用 jQuery 的 .click() 以及做:

有没有人能够通过沙箱在浏览器中的页面上触发点击事件?我可以很好地处理 DOM 元素,但触发事件是另一回事。

0 投票
3 回答
372 浏览

jquery - jQuery 1.4 中的事件委托

我有以下代码:

我听说过有关事件委托和速度性能的好消息。使用 jQuery 的委托方法,我想它会是这样的:

但是阅读文档,它说这种方法就像使用实时事件一样。而且我一直理解使用现场活动是低效的。那么,有人可以告诉我最佳实践吗?

0 投票
2 回答
2077 浏览

jquery - 发布/获取后jQuery双重事件触发

好的,我已经绞尽脑汁想弄清楚为什么在 IE 和最新版本的 FF 中会发生这种情况。它适用于铬。我只是一个新手开发人员,最近开始使用 jquery。所以我什至不知道我是否正确地解决了这个问题。

它在很大程度上是一种基本形式。jquery ajax post() 然后 get() 来更新页面。从 get 加载页面后,右侧导航/侧边栏可折叠标题会双重触发,操作窗格中的操作链接也是如此。我尝试使用 bind()、live() 和 delegate() 绑定 click 事件。它最初与 bind 一起工作,但我不得不在 ajax 调用之后重新绑定我的所有点击事件,我正试图找到一种解决方法。

我已经设置了我在这里构建的应用程序的静态版本:

http://ishiftdelete.com/pw_mkvi/ajax_wtf.htm

测试:单击右侧导航/侧边栏中操作页面内的编辑页面链接。这将打开一个带有表单和提交按钮的模型对话框。