0

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

4

2 回答 2

1

看到你已经准备好使用selector-parameter for 了on,为什么不把整个事情提升到bodythen 的水平。这样你就不必重新绑定任何东西。

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

于 2012-08-29T09:13:25.103 回答
1

您可以使用 jQuery 的.delegate(),尽管对于大型应用程序来说它可能会变得过于混乱。

于 2012-08-29T08:45:05.107 回答