私のプロジェクトにはボタンがあり、それをクリックすると関数呼び出しがonclick
行われ、プロジェクト内のすべての特定の要素にイベントが追加され、非表示のポップアップ要素コンテナーが表示されます。
ページに存在するすべての要素を検索し、onclick
特定のクラスを持ついくつかの要素にイベントを追加する機能があります。
私の要素はリスト配列に格納されています。この配列 (配列名はlist
) の各セルには、次のような要素が格納されます。
list[0] = document.getElementById("my_div_id");
list[1] = document.getElementById("my_div_id_1");
list[2] = document.getElementById("my_div_id_2");
...
list[n] = document.getElementById("my_div_id_n");
そして、Javascriptコードの上に以下のような関数があります:
function say_hello(e, msg) {
if (e == null) e = window.event;
//now e handler mouse event in all browser !!!
alert (e + "::" + msg);
}
onclick
配列の各要素にイベントを追加する関数があります。以下のタイプのイベントを追加onclick
します((*)コメントで区切られています)が、それらのいずれも機能しません:
function search_and_add_events_to_all_dragable_elements (list) {
for (var z = 0; z < list.length; z++) {
list[z].href = "javascript:;";
var e;
var test_msg = "VAYYYYYYYYYY";
/**************
element.onclick = new Function { alert ('hi'); };
element.onclick = new Function () { alert ('hi'); };
element.onclick = new function { alert ('hi'); };
element.onclick = new function () { alert ('hi'); };
element.onclick = new function () { return alert ('hi'); };
element.onclick = function () { return alert ('hi'); };
element.onclick = alert ('hi');
element.onclick = "alert ('hi');";
element.onclick = say_hello(e, test_msg);
element.onclick = "say_hello();";
element.onclick = (function (e, test_msg) { return function(e) { sib(e, test_msg); };
element.onclick = (function () { return function() { alert("ahaaay"); };
**************/
list[z].style["padding"] = "20px";
list[z].style["border"] = "solid 10px";
list[z].style["backgroundColor"] = "#CCC";
}
}
コードの最後を変更style
して、コードが機能し、本当に終了するようにします。スタイルは毎回変更されますが、onclick
イベントは私のdiv
. プロジェクト
に追加する方法は 1 つだけです。onclick
それは以下と同じです:
list[z].setAttribute("onclick", "alert(\"hi\");");
しかし、より良い方法はありますか?