繼this link我創建了一個命名空間,我的對象有:如何通過jQuery的無衝突到我已經放在一個命名空間中的物體
var Namespace =
{
Register : function(_Name)
{
var chk = false;
var cob = "";
var spc = _Name.split(".");
for(var i = 0; i<spc.length; i++)
{
if(cob!=""){cob+=".";}
cob+=spc[i];
chk = this.Exists(cob);
if(!chk){this.Create(cob);}
}
if(chk){ throw "Namespace: " + _Name + " is already defined."; }
},
Create : function(_Src)
{
eval("window." + _Src + " = new Object();");
},
Exists : function(_Src)
{
eval("var NE = false; try{if(" + _Src + "){NE = true;}else{NE = false;}}catch(err){NE=false;}");
return NE;
}
}
定義對象:
Namespace.Register("System.Classes.HelloWorld");
System.Classes.HelloWorld = function(aa){ return {
Message : "Hello World!",
Hello : function(a,b)
{
alert(this.Message + a + b);
}
};}
哪有我將jQuery NoConflict傳遞給這個對象並允許我使用$符號?
例如this article創建了一個類似的對象,只是通過jQuery NoConflict以我無法應用於上述代碼的方式傳遞。
此代碼包裝jQuery的NoConflict,並允許我想其中的美元符號複製:
(function(skillet, $, undefined) {
//Private Property
var isHot = true;
//Public Property
skillet.ingredient = "Bacon Strips";
//Public Method
skillet.fry = function() {
var oliveOil;
addItem("\t\n Butter \n\t");
addItem(oliveOil);
console.log("Frying " + skillet.ingredient);
};
//Private Method
function addItem(item) {
if (item !== undefined) {
console.log("Adding " + $.trim(item));
}
}
}(window.skillet = window.skillet || {}, jQuery));
你可以用同樣的方法做到這一點......究竟是什麼問題?如果你解釋*你在哪裏訪問jQuery,這可能會有所幫助。 – 2013-03-26 21:34:21
System.Classes.HelloWorld對象內部。這個想法是,對象自動訪問jQuery $,所以我們最好傳入Namespace函數本身的No Conflict參數。順便說一句,我怎樣才能以同樣的方式做到這一點?我已經嘗試將較低的代碼轉換爲中間代碼的較低部分代碼,但無濟於事。 – 2013-03-27 11:03:50