我有一个主要在Ajax上运行的应用。每当我更新内容时,我都会运行一个特定页面binder
来启动/重新启动可能已被替换的元素的功能。
目前我这样做是这样的:
// pagebinder
var bindResults = function( page ){
// element
var swipesOnPage = page.find('.photoswipeable');
if ( swipesOnPage.length > 0 && swipesOnPage.jqmData('bound') != true) {
swipesOnPage
.jqmData('bound', true )
.on('click', '.singleLoader', function(e){
// do somethinbg
})
.on('click', '.selector', function(e){
// do something else
});
}
}
所以我正在检查一个元素是否在页面上(可能已被删除/添加),如果找到一个元素而不是jqmData(bound)
,我正在设置绑定。
这没关系。但我想知道这是否是最好的方法,所以
问题:
在使用Ajax驱动的应用程序时,如何最好地管理多个元素的元素绑定?
答案 0 :(得分:1)
你可以使用jQuery的.delegate()
,但对于大型应用来说它可能会变得太乱。
答案 1 :(得分:1)
看到你已经在使用on
的 selector-parameter ,为什么不把整个事情移到body
的水平呢?这样你就不必重新绑定任何东西。
这可能会导致更多的dom遍历,但如果结构没有太深嵌套,那应该不会有太大的问题。