メニュー システムを作成していて、ユーザーが特定の行をクリックしたときに関数を呼び出す必要があります。新しい関数を使用して、関数を呼び出した div とユーザーがクリックした行を渡します。関数にローカル配列を渡そうとするまでは、問題ありません。私が次のことをした場合:
for (i=0;i<tmpdropnumber;i++){
var dv=document.getElementById(id+i);
dv.style.cursor="pointer";
dv.onmouseover = new Function('dropover'+"('" + id + "','" + i + "')");
dv.onmouseout = new Function('dropout'+"('" + id + "','" + i + "')");
dv.onclick = new Function('dropclick'+"('" + id + "','" + i + "','"+tmparray1+"','"+tmparray2+"')");
}
ご想像のとおり、配列は文字列として渡されます。関数で配列を再構築することはできましたが、それは洗練されていないようです。
次のことを試してみると:
for (i=0;i<tmpdropnumber;i++){
var dv=document.getElementById(id+i);
dv.style.cursor="pointer";
dv.onmouseover = new Function('dropover'+"('" + id + "','" + i + "')");
dv.onmouseout = new Function('dropout'+"('" + id + "','" + i + "')");
dv.onclick = new Function('dropclick'+"('" + id + "','" + i + "',"+tmparray1+","+tmparray2+")");
}
配列を渡そうとするとクラッシュします。どうすればこれを達成できるかについてのアイデアはありますか? コードでjqueryを使用しているため、javascriptまたはjqueryソリューションで問題ありません。