如何在动态生成的元素上触发事件(在mootools中)
可以在此处找到演示该问题的示例:
如您所见只有第一个“添加”按钮才会触发事件。动态生成的按钮则不然。这是可以理解的,因为在页面加载时这些元素尚未创建。
那么我需要更改什么才能使动态生成的元素也注册到事件呢?
感谢您的关注。
Example to demonstrate the issue can be found here:
As you can see only the first "Add" button triggers an event. The dynamically generated button does not. This is understandable as on page load these elements have not been created.
So what do I need to change to enable dynamically generated elements to also be registered to an event?
Thanks for looking.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
提到的答案很旧了。如果可以,请升级到 MooTools 1.3 而不是 1.2。在MooTools More中,您将找到Element.Delegation包。该包处理所有 MooTools 本机事件的委托,但 focus、blur、mouseenter 和 mouseleave 除外。
您可以在这里找到更新的 JS Fiddle: http://jsfiddle.net/Byyu2/1/
The answer mentioned is quite old. If you can, upgrade to MooTools 1.3 instead of 1.2. In MooTools More, you will find the Element.Delegation package. The package handles delegation for all MooTools native events, except focus, blur, mouseenter and mouseleave.
You will find an updated JS Fiddle here: http://jsfiddle.net/Byyu2/1/
关于在mootools中实现.live(来自jQuery)的答案 可能会有一些用处。
An answer on implementing .live (from jQuery) in mootools may be of some use.
使用 Element.cloneEvents 怎么样?
检查这个样本:
http://jsfiddle.net/Byyu2/5/
它看起来有点丑,因为你可以' t 直接在新行上调用 cloneEvents() (cloneEvents() 不能递归工作),但它可以工作:-)
What about using Element.cloneEvents?
Check this sample:
http://jsfiddle.net/Byyu2/5/
It looks kind of ugly, because you can't call cloneEvents() directly on the new row (cloneEvents() does not work recursivly), but it works :-)