对于具有特定类的所有元素,我都有一个外部函数,如下所示:
jQuery('.myClass').myFunction();这是可行的,但我如何使这种情况发生在动态创建的元素。我有多个函数可以创建元素,我不想在创建新元素的每一段代码中添加这一行。
这样做的原因是,我根据与php一起使用的元素加载javascript。因此,我不能将myFunction()添加到元素create函数中,因为这两个函数都位于不同的文件中,这些文件可能加载在同一个页面上,也可能不会一起加载。
因此,在创建对象时,如何使用“..myClass”调用对象上的.myFunction()函数。
所以在创建元素的函数中,我不知道需要对元素调用哪些函数,而在对元素执行函数的文件中,我不知道哪些函数创建了元素。
解决方案:,因为这是一个重复的问题,我不能添加一个答案。然而,我确实采取了一种不同于在这个问题上解决这个问题的方法。我的方法是创建一个新类,其中每个脚本都可以添加在创建元素时应该调用的函数,并在创建新元素时调用这些函数。
联署材料:
function jsHandler(){
this.actions = [];
this.addAction = function(action){
this.actions.push(action);
action();
};
this.callActions = function(){
jQuery.each(this.actions,function(key,action){
action();
});
};
}
var myJsHandler = new jsHandler;//global variable然后,在每个必须对对象调用函数的文件中,我将如下所示:
myJsHandler.addAction(function(){
jQuery('.myClass').myFuncion();
});在创建元素的每个文件中,我将其放在创建元素之后:
myJsHandler.callActions();对我来说这很管用。不过,也有一些说明:
发布于 2015-03-06 16:26:27
<div class="root">
<span class="line"></span>
</div>
jQuery(document).on('DOMNodeInserted','.line',function(){
jQuery(this).myFunction();
console.log("object added");})
jQuery(".root").append(jQuery("<span/>").addClass("line"))有关详细信息和突变事件列表,这链接
https://stackoverflow.com/questions/28902413
复制相似问题