jQuery   发布时间:2022-04-19  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jquery – 为什么Backbone事件替换html不起作用?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
如果我在window.myView变量中存储视图,渲染它,然后调用 javascript控制台:
$('#container').html('')

然后调用

$('#container').html(window.myView.$el)

绑定事件将停止工作.

我确信这应该是这样,但是:

为什么这样做呢?
>如何重新呈现子视图w / o丢失事件绑定?
为什么@L_265_0@myView.render()不会丢失事件绑定?

更新:

发现this文章.那是原因吗

解决方法

jQuery空,html和remove事件正在清理所有jquery事件和数据绑定,以防止内存泄漏(您可以检查jQuery源代码的cleanData方法来找出更多 – 这是一个未记录的方法)

view.render()不会删除事件,因为BACkbone视图事件是使用事件委派绑定的,并且绑定到视图的el,而不是直接绑定到视图中的元素.

如果要重用您的视图,您可以使用jQuery detach方法删除它们,该方法可以保持所有事件和数据的约束,但必须注意不要以这种方式产生内存泄漏. (jquery detach docs)

如果您想要第一种方式,您可以使用BACkbone.View delegateEvents方法轻松地重新绑定BACkbone事件. (backbone doc)

Ps.使用jQuery .empty()而不是.html(”),jQuery html方法始终调用空,首先清除所有事件和数据,然后再插入新的html,这样也就更为清晰,更优化.也不要混合jquery和本机DOM innerHTML,因为它可能会产生内存泄漏,因为没有清理jQuery事件/数据

大佬总结

以上是大佬教程为你收集整理的jquery – 为什么Backbone事件替换html不起作用?全部内容,希望文章能够帮你解决jquery – 为什么Backbone事件替换html不起作用?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。