0
我沒有在我的第三個導航欄中使用我自己的功能創建任何選項(列表項)或獲取和空選項。如果我在navBar函數中包含alert,那麼它會在邊緣工作,它也會創建一個包含所有選項的navBar,如果我要生成一個數組變量並手動將值插入到該數組中,而不通過我的書寫函數來填充此數組。請看下面的代碼。上次創建的導航欄按鈕中沒有列表項。使用我自己的功能
var tims = [];
//populates the array with teams
function getTeams(tims) {
$.getJSON("teams.json").done(function(data) {
var tim1 = data.sports_content.teams;
for (var i in tim1.team) {
if (tim1.team[i].is_nba_team == true) {
tims.push(tim1.team[i].city + ' ' + tim1.team[i].team_nickname);
}
}
})
return tims;
}
//function used to create a navbar
function navBar(id, header, options, cssParams, cssRed) {
var content = "<ul class= 'dropdown-menu ";
var css = "";
var css1 = "";
//setting up css for a navbar
for (var j in cssParams) {
css += cssParams[j] + " ";
}
content += css + "' >";
//creating list of css elements for navbar placement
for (var z = 0; z < cssParams.length - cssRed; z++) {
css1 += cssParams[z] + " ";
}
//alert(css1);
//creating list elements for a navbar
for (var i in options) {
content += "<li><a id ='" + id + i + "' href='#'>" + options[i] + "</a></li>";
}
content += "</ul>";
$('#nBar').append("<div class='btn-group '> <button id = '" + id + "' type='button' class='" + css1 + " btn btn-primary btn-lg dropdown-toggle ' data-toggle='dropdown' aria-haspopup='true' aria-expanded='false'>" + header + "<span class='caret'></span></button>" + content + "</div>");
//alert(content);
}
//creating three navbars , the third one appears to be empty
var tims = new Array();
tims = getTeams(tims);
navBar("func", "func", ["news", "roster", "stadium", "switch the team"], ["navMv", "options1", "col1"], 2);
navBar("nba", "Nba", ["top 10 last night", "commisioner", "info"], ["navMv", "next", "options1", "col1"], 2);
navBar("team", "team", tims, ["navMv", "next1", "options1", "col1"], 2);
如果我提醒tims[any_element]
我會得到正確的彈出。認爲這值得一提。 例如,這將會給我一線隊的名字,如果我要按下FUNC導航欄的第一個列表項,但球隊導航欄列表爲空:
$('#main').ready(function(){
var tims = new Array();
tims = getTeams(tims);
navBar("func","func",["news","roster","stadium","switch the team"],["navMv","options1","col1"],2);
navBar("nba","Nba",["top 10 last night","commisioner","info"],["navMv","next","options1","col1"],2);
navBar("team","team",tims,["navMv","next1","options1","col1"],2);
$("#func0").click(function(event){
alert(tims[0]);
event.preventDefault;
})
});
我已經更新了我的代碼,現在使用您提供的Seb並感謝您的支持。儘管由於某種原因,我仍然遇到同樣的問題。如果我將創建單個navBar元素放入我的網站中的任何對象的可以說單擊事件函數中,我將獲得使用所有團隊名稱創建的navBar,但由於某種原因無法通過ID訪問。它工作的唯一方式是當我在navBar函數的末尾添加alert(內容)(每次頁面加載時似乎運行兩次),並且我可以通過它們的id訪問所有itesm。任何想法爲什麼? – kamilucha123