问题标签 [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.
javascript - 在所有 textarea 之上自动初始化富文本编辑器,包括通过 ajax 加载的那些
我正在开发一个 ajax 繁重的网络应用程序,并希望textarea
's (with class="ui-richtext"
) 自动初始化 TinyMCE。
这对于正常加载的 textarea 来说很容易,但是对于使用 ajax 之后加载的内容呢?
我在想一些事情:(我正在使用jquery)
不幸的是,这似乎不起作用。有任何想法吗?
这是我的第一篇文章,如果我需要添加更多信息,请告诉我
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。我没有复制整个表格,因为它有点大,并且所有单元格都使用相同的数据重复自身。如果需要,我会发布它。
actionscript-3 - flex中的target和currenttarget有什么区别?
谁能告诉我flex中target和currenttarget之间的区别?
javascript - 使用 HTML5 数据属性的 MooTools 事件委托
是否可以使用 MooTools 中的 HTML5 数据属性进行事件委托?
我拥有的 HTML 结构是:
而且我想设置为仅<div id="parent">
收听具有该属性的子元素的所有点击。data-selected
如果我做错了什么,请告诉我:
事件被设置为:
但是单击回调会在单击所有 div 时触发,而不仅仅是定义了 data-selectable 属性的那些。你可以在http://jsfiddle.net/NUGD4/上看到这个例子
一种解决方法是将其添加为 CSS 类,它与委托一起使用,但我希望能够使用数据属性,因为它在整个应用程序中使用。
javascript - 以编程方式触发的事件不适用于事件委托
如果有人能帮我弄清楚为什么我在 MooTools 中使用事件委托(来自Element.Delegation
课堂)时无法以编程方式触发事件,我将不胜感激。
有一个父级在某些子元素上<div>
有一个change
监听器。<input>
当用户操作触发更改事件时,父 div 上的处理程序被触发,但是当我fireEvent
在任何子输入上以编程方式触发它时,什么也没有发生。基本设置是:
html
js
不会调用父 div 上的事件处理程序。任何帮助表示赞赏。
fireEvent
相关问题:在 DOM 树中是否触发了冒泡事件?我目前的黑客是在本地调度正在工作的事件(但仍然是黑客)-http: //jsfiddle.net/SZZ3Z/1/
jquery - 在 jQuery 验证插件中自定义事件委托
我目前正在设置 jQuery 验证插件以在我们的项目中使用。
默认情况下,会自动设置一些事件进行处理。即焦点输入/输出,所有输入触发验证的按键事件。我希望它仅在单击提交按钮时触发。
这个功能似乎是内置在插件中的,这使得它很难做到(不修改插件代码,不是我想要做的)。
我在插件代码原型方法中找到了eventDelegate函数调用:
当我从插件中删除这些行时,我得到了我的结果,但是我更愿意在插件之外做一些事情来实现这一点。
有人可以帮我吗?如果您需要更多详细信息,请告诉我。我搜索了谷歌,但收效甚微。
谢谢
编辑:我基本上只是在触发提交事件时才尝试验证表单。默认情况下,每次输入控件失去焦点时,插件都会进行验证。
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
? 我以前做过一次并且理解了这个理论,但是我对细节很模糊,并且希望得到一些关于它是什么样子的指导——假设这是一种可行的方法。
非常感谢您的帮助!
firefox-addon - 从 FF 沙箱中触发点击事件
我正在尝试从 Firefox 沙箱中触发页面上元素的点击事件。我尝试过使用 jQuery 的 .click() 以及做:
有没有人能够通过沙箱在浏览器中的页面上触发点击事件?我可以很好地处理 DOM 元素,但触发事件是另一回事。
jquery - jQuery 1.4 中的事件委托
我有以下代码:
我听说过有关事件委托和速度性能的好消息。使用 jQuery 的委托方法,我想它会是这样的:
但是阅读文档,它说这种方法就像使用实时事件一样。而且我一直理解使用现场活动是低效的。那么,有人可以告诉我最佳实践吗?
jquery - 发布/获取后jQuery双重事件触发
好的,我已经绞尽脑汁想弄清楚为什么在 IE 和最新版本的 FF 中会发生这种情况。它适用于铬。我只是一个新手开发人员,最近开始使用 jquery。所以我什至不知道我是否正确地解决了这个问题。
它在很大程度上是一种基本形式。jquery ajax post() 然后 get() 来更新页面。从 get 加载页面后,右侧导航/侧边栏可折叠标题会双重触发,操作窗格中的操作链接也是如此。我尝试使用 bind()、live() 和 delegate() 绑定 click 事件。它最初与 bind 一起工作,但我不得不在 ajax 调用之后重新绑定我的所有点击事件,我正试图找到一种解决方法。
我已经设置了我在这里构建的应用程序的静态版本:
http://ishiftdelete.com/pw_mkvi/ajax_wtf.htm
测试:单击右侧导航/侧边栏中操作页面内的编辑页面链接。这将打开一个带有表单和提交按钮的模型对话框。