我的项目中有一个按钮,当您单击它时,它会调用一个函数并将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
.
只有一种方法可以添加onclick
到我的项目中。这与以下相同:
list[z].setAttribute("onclick", "alert(\"hi\");");
但是有更好的方法吗?