私はjavascriptで何かを達成しようとしてきましたが、失敗しました。次のオブジェクトを見てください
app.Behaviors.pageColor = {
color: 'red',
height: '200px',
width: "200px",
init: function(){
$("div").css({
background: this.color,
height: this.height,
width: this.width
});
}
};
これは単なるダミー オブジェクトですが、実行できないことが 2 つあります。まず、 $("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);
});
これにより、検出された data-behavoirs 属性に基づいて、アクセスするための Behaviors オブジェクトが作成されます。
ご不明な点や詳しい情報が必要な場合はお尋ねください。ありがとう!