我使用流星1.3,我必须在我的流星应用中集成一个“web模板”,这个“web模板”有一个custom.js文件,女巫包含j个查询事件,但在集成了“web模板”之后,js文件中的这些事件只运行一次,是否有办法解决这个问题,这个js文件包含很多行,将事件移动到我的“流星模板事件”中会非常复杂。 谢谢流星与jquery事件只运行一次
0
A
回答
1
问题是事件直接对您的模板内的DOM元素进行补偿,当流星更改DOM元素时,绑定会丢失。
你要做的是使用委托事件,这是通过使用jquery .on()完成的。
你所要做的就是处理固定DOM元素中的事件,即“改变HTML”父项。当事件发生在这个元素内时,事件会“泡泡”到处理它的固定DOM元素。该事件携带有关启动它的DOM元素的信息,因此on预订可以调用正确的处理程序。
注意$('#fixedElement').on(event, selector, handler)
指定:
- 固定元素,将“抓住”冒泡事件
- 你想要的事件来处理
- 其过滤固定元素的后代元素选择
- 处理程序来执行
所以,你可以指定哪些事件处理哪个元素与哪个处理程序。这会在流星修改DOM后生效。
举例来说,如果你有这样的:
$('#btnOk').click(function() { alert('Clicked OK!`); });
你必须把它变成这样:
$('#container').on('click', '#btnOk', function() { alert('Clicked OK!`); });
,因此,在与ID为 '#btnOk' DOM元素是在'#cotnainer'里面,处理程序将被执行,而不管之前存在的对象是存在还是正在被创建。
当然,您必须确保#container
元素存在,并且不会被其他任何东西所取代。要做到这一点,也许你必须遍历DOM树,例如使用jQuery .parent()
。
相关问题
- 1. Python的星火流只运行一次
- 2. jQuery事件将只运行一次
- 3. 事件只运行一次
- 4. 需要运行检查点击事件只有一次与jquery
- 5. synced-cron要运行一次 - 流星
- 6. 每刷新一次只运行一个jQuery事件
- 7. jQuery:只运行一次
- 8. jQuery .click()只运行一次
- 9. jQuery只运行一次
- 10. JQuery Animate只运行一次
- 11. jQuery插件只运行一次
- 12. 运行jQuery的事件处理程序只有一次
- 13. jquery每次只运行一次
- 14. 流星 - 一次
- 15. 只运行一次js文件一次
- 16. 流星`onRendered`只调用一次
- 17. jQuery插件事件只触发一次
- 18. 故事板只运行一次
- 19. 只运行一次?
- 20. 有jQuery的只运行一次
- 21. jQuery只能运行一次onclick函数
- 22. jQuery的AJAX只运行一次
- 23. Jquery IE。 ajax请求只运行一次
- 24. Jquery定时器只运行一次?
- 25. Jquery cookie只运行一次动画
- 26. 如何让jquery只运行一次
- 27. jQuery函数只运行一次
- 28. jQuery脚本只能运行一次
- 29. 只触发jQuery mousemove事件一次
- 30. jQuery Click事件只触发一次
hanks,我试过了,但它不起作用。 $(myElementId).on('click',function(){//做一些事情}); – nemrrached
您需要指定第二个参数。请参阅最新的答案。 – JotaBe
Thnaks,它的工作 – nemrrached