実行時に、私はJavaScriptを使ってhtmlを作成し、オブジェクトをバインドして後で関数に渡したいとします。このような実行時にオブジェクトをjavascript関数に渡す
何か:
var projects = //(json object)
projects.forEach(function(p) {
$("#container").append("<div onclick=handleClick(p)></div>");
});
function handleClick(p) {
//...
}
これを実行すると、p
はjQueryの内蔵$ .click機能は同じものである代わりに、実際のプロジェクトオブジェクトの文字列[object object]
となり、使用して作るように思えます。私は、実行時に何らかの形でこれらの要素を関数にバインドする必要があることを知っています。
過度の検索やDOMアクセスなしでこれを行う適切な方法は何ですか?
。次に、クリックハンドラで '$(this).data()'を使って検索します。 ['.data()' doco](http://api.jquery.com/data/)を読んでみてください。あなたにまだ問題があるなら、戻って来てください。 – nnnnnn
親のクリックを処理し、どのdivがクリックされたかに基づいて決定します。どのプロジェクトがクリックされたかを識別するIDを持っている場合は、それをデータ属性として使用することで、識別することができます –