這裏是我一起工作的代碼:如何訪問變量的函數以外的Javascript
$(document).ready(function() {
var TemplateEditor = function() {
var GroupClassName = 'group';
var SelectedGroup = 0;
var BindClicks = function() {
$('.CriteriaSelections').unbind('click').click(function (event) {
event.preventDefault();
if (fnIsTheClickedBoxaGroup($(this))) {
TemplateEditor.GroupClicked();
}
else {
TemplateEditor.CriteriaClicked($(this), SelectedGroup);
}
});
$('.groupselected').unbind('click').click(function (event) {
event.preventDefault();
SelectedGroup = $(this).attr('group-'.length);
TemplateEditor.SelectGroup(SelectedGroup);
});
}
var fnGetGroupID = function (Obj) {
if (fnIsTheClickedBoxaGroup(Obj) == true) {
return null;
}
else {
//Get parent which is the group
var ObjParent = Obj.parent();
var GID = ObjParent.attr('id').substr('group-'.length);
return GID;
}
}
var fnIsTheClickedBoxaGroup = function (Obj) {
var GetClass = Obj.attr('class');
if (GetClass == GroupClassName) {
return true;
}
else {
return false;
}
}
return {
Init: function() {
BindClicks();
},
CriteriaClicked: function (Obj, GroupID) {
$('<div>').attr({ id: '' }).addClass('selection').text(Obj).appendTo('#group-' + GroupID);
},
GroupClicked: function() {
},
SelectGroupClicked: function() {
},
UpdateTargetPanel: function() {
}
};
}();
TemplateEditor.Init();
});
我試圖訪問這個變量: GroupClassName
這個變量是這個函數
內var fnIsTheClickedBoxaGroup = function (Obj) {
var GetClass = Obj.attr('class');
if (GetClass == GroupClassName) {
return true;
}
else {
return false;
}
}
當我運行該程序時,它說GroupClassName是未定義的。我在這裏錯過了什麼嗎?
嘗試fnIsTheClickedBoxaGroup函數中的'alert(GroupClassName)'。我沒有看到爲什麼GroupClassName不應該設置,當你到達它。另外,你是否無意中多次聲明var GroupClassName?你使用不正確的大寫? – 2010-04-30 19:24:25
行..當我把它取消它的作品。但我不明白爲什麼它的工作 – Luke101 2010-05-01 02:33:20
你也可以嘗試看看它是否適用於其他瀏覽器。因爲你沒有用分號結束你的函數賦值語句('var x = function(){...}'),所以你的代碼在技術上會有語法錯誤,並且可能不適用於所有的瀏覽器。一般來說,看看JSLint(http://www.jslint.com/)對你的代碼的評論。 – 2010-05-01 03:38:01