我一直在尝试用 javascript 实现某些目标,但没有成功。看看下面的对象
app.Behaviors.pageColor = {
color: 'red',
height: '200px',
width: "200px",
init: function(){
$("div").css({
background: this.color,
height: this.height,
width: this.width
});
}
};
这只是一个虚拟对象,但有两件事我无法做到。首先,而不是 $("div").css(); 我想要一个变量,它是调用 js 的容器。其次,我希望 init 函数在不调用它的情况下运行......所以如果 data-behavior 属性匹配并且 js 被添加到我的行为中,它将运行 init 函数。为了解释我的行为谈话,这就是我所有的 JS 组合在一起的方式。
// Create the object
var app = window.app || {};
// Create the Behaviors object to store methods
app.Behaviors = {}
// Creates methods of the Behaviors object
app.LoadBehavior = function(context){
if(context === undefined){
context = $(document);
}
context.find("*[data-behavior]").each(function(){
var me = $(this);
var behaviors = me.attr('data-behavior');
$.each(behaviors.split(" "), function(index,behaviorName){
try{
var BehaviorClass = app.Behaviors[behaviorName];
var initalizedBehavior = new BehaviorClass(me);
}
catch(e){
// No Operation
}
}); // each
}); // find
}; // LoadBehavior function
// Call the ready function
$(document).ready(function(){
app.LoadBehavior();
/*** Call this init when the behavior is found, not by declaring it here. ***/
app.Behaviors.pageColor.init();
//Debugging
console.log(app);
});
因此,这会根据它找到的数据行为属性创建一个 Behaviors 对象供我访问。
请询问您是否有任何问题或需要更多信息。谢谢!