Ich versuche, einige dynamische Menüs zu erstellen, die während des Betriebs erstellt werden, indem Sie eine JSON-Anforderung über jQuery aufrufen, um das Menü zu erstellen. Ich habe folgende geplante Menüstruktur:Erstellen Sie ein Menü von JSON
<ul class="menu">
<li>
<a href="/Organisations/201/NewJournalEntry" title="New Journal Entry">
<span class="icon journal-new">New Journal Entry</span>
</a>
</li>
<li>
<a href="/Organisations/201/People" title="View People">
<span class="icon people">People</span>
</a>
</li>
<li class="sep">
<a href="/Organisations/201/Edit" title="Edit">
<span class="icon edit">Edit</span>
</a>
</li>
</ul>
und die folgende JSON als Beispiel:
{"menu": {
"id": "organisation-201",
"class": "menu",
"content": {
"menuitem": [
{"text" : "New Journal Entry", "title" : "New Journal Entry", "href" : "/Organisations/201/NewJournalEntry", "liClass" : "", "icon" : "icon journal-new" },
{"text" : "View People", "title" : "View People", "href" : "/Organisations/201/People", "liClass" : "", "icon" : "icon people" },
{"text" : "Edit", "title" : "Edit", "href" : "/Organisations/201/Edit", "liClass" : "sep", "icon" : "icon edit" }
]
}
}}
Was wäre der beste Weg, dies zu tun? Die URL, die abgefragt werden würde, wäre etwas wie '/ MenuBuilder/organisation-201.json`
Ich habe die $ .getJSON-Methode angeschaut, aber ist die richtige Sache zu betrachten? Kann jemand Vorschläge usw. oder sogar bessere Beispiele bieten .. Danke
Das ist, was ich bisher ... Ja
$(document).ready(function() {
// First we connect to the JSON file
$.getJSON('menu.json', function(data)
{
// Setup the items array
var items = [];
// For each line of data
$.each(data, function(key, val)
{
items.push('<li class="' + liClass + '"><a href="' + href + '"><span class="' + icon +'">' + text + '</span></a></li>');
});
$('<ul/>', {
html: items.join('')
}).appendTo('#buildHere');
});
// END json
});
Was Bist du eine Frage? Abrufen des JSON vom Server oder Erstellen von DOM-Elementen daraus (oder von beiden)? – mgibsonbr
Erstellen des Menüs aus dem JSON – Cameron
Meine Antwort unten gibt eine Einführung, die Sie ganz einfach an Ihre Bedürfnisse anpassen können. Aber auf lange Sicht denke ich, dass das Lernen eines Template-Plugins wie Rody van Sambeek besser sein könnte, aber da ich keine persönlichen Erfahrungen damit habe, kann ich mir nicht sicher sein. – mgibsonbr