私は本当にこれが単純な説明を持っていないことを望んでいます.それは多くの時間を失うことを意味するからです.締め切りの節約になります。お願いします。
私は次のことを達成しようとしています。
1.) JSON ファイルによって読み込まれるリンクのリストを作成する (動作)
2.) カテゴリ オブジェクトをビルダー関数に渡す li または a ごとにクリック イベントをバインドする (これが動作すると考えてください)
3.) ユーザークールなことをするオブジェクト
ただし、ビルダー関数に到達すると、奇妙な繰り返しが発生します。
category.json という私の JSON ファイルについて考えてみましょう。
[
{
"category": [
{
"id": "1",
"title": "Title 1",
"values": [
{
"eg": [
{
"number": "12000000"
}
]
}
]
}
]
},
{
"category": [
{
"id": "2",
"title": "Title 2",
"values": [
{
"eg": [
{
"number": "37000000"
}
]
}
]
}
]
},
{
"category": [
{
"id": "3",
"title": "Title 3",
"values": [
{
"eg": [
{
"number": "37000000"
}
]
}
]
}
]
}
]
そして、私が間違いなく間違っているところ、私のJS:
$(document).ready(function() {
//Get the necessary data from the JSON file
$.getJSON("categories.json", function(categories) {
$.each(categories, function(c, category) {
var link = new Nav(category.category);
});
});
Nav = function(groups){
$.each(groups, function(g, group) {
//console.log(group);
$('#categories').append('<li><a href="#">'+group.title+'</a></li>').data(group);
$('#categories li a').on('click', function(){
var builder = new Builder(group);
});
//$('#categories').append('<li><a href="#">'+this.title+'</a></li>');
//$('#categories').append(
// $("<li/>", { id: links.id, text: links.title}).data('navver', links)
//);
});
};
Builder = function(builder){
console.log(builder);
};
});
ご覧のとおり、コメントアウトされた他の「試行」がいくつかあります。したがって、最初に生成されたリンクをクリックすると、console.log に次の出力が表示されます。
Object { id="1", title="Title 1", values=[1]}
Object { id="2", title="Title 2", values=[1]}
Object { id="3", title="Title 3", values=[1]}
これは、最初の項目だけでなく、配列全体です。2 番目のリンクをクリックすると:
Object { id="2", title="Title 2", values=[1]}
Object { id="3", title="Title 3", values=[1]}
3 番目のリンクをクリックすると、次のようになります。
Object { id="3", title="Title 3", values=[1]}
私がしたいのは、対応するリンクをクリックすると正しいオブジェクトが返されることです。
私を助けてくれる時間のある賢い人はいますか?