1

将 JS 重新应用于动态生成的内容的最佳方法是什么?我说的是“重新应用 JS”而不是“重新绑定事件”,因为意思是“重新应用绑定事件并更改 dom 的 JS”,到目前为止我所做的是这样的:

main.js:
function repplyDynamic(){
    $('.dynamic:not(.js-initialized)').each(function(){
        $(this).addClass('js-initialized').append('<div class="chaging_dom"></div>').click(function(){
            alert("Ae!");
        });
    });
}


other_code.js
$('body').append('<div id="dynamic">content</div>'); // could be a ajax call
reapplyDynamic();

但我认为这非常混乱。你们有更好的方法吗?

4

3 回答 3

1

就我个人而言,我有一个名为的函数dommods(),它可以完成我需要的所有修改(工具提示、表单、自动调整文本区域大小等),并在每次对 DOM 进行重大更改后调用它。

换句话说,正是您正在做的事情,但函数名称不同。它没有错。

于 2012-05-10T01:02:18.077 回答
0
//main.js
function applyDynamicStuff(content){
    return content                                  //return content
        .append('<div class="chaging_dom"></div>')  //with appended element
        .click(function(){                          //with click hander
            alert("Ae!");
        });
}

//other_code.js 
var dynamicItem = $('<div>content</div>')           //the new content
applyDynamicStuff(dynamicItem).appendTo('body');    //apply Dynamic stuff and append to body
于 2012-05-10T01:07:14.807 回答
0

您可以使用jQuery 的 $().on 方法将事件处理程序附加到当前或将来的 HTML 元素。

于 2012-05-10T01:02:46.477 回答