如何在AJAX驱动的应用程序中优化元素绑定?

时间:2012-08-29 08:42:40

标签: javascript jquery ajax events binding

我有一个主要在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驱动的应用程序时,如何最好地管理多个元素的元素绑定?

2 个答案:

答案 0 :(得分:1)

你可以使用jQuery的.delegate(),但对于大型应用来说它可能会变得太乱。

答案 1 :(得分:1)

看到你已经在使用on selector-parameter ,为什么不把整个事情移到body的水平呢?这样你就不必重新绑定任何东西。

这可能会导致更多的dom遍历,但如果结构没有太深嵌套,那应该不会有太大的问题。