javascript - 如何动态添加 onclick 属性?

标签 javascript internet-explorer appendchild

我尝试过以下一个 el.setAttribute("onclick","alert("+color['R'][i]+")");但不能在 IE 较旧的浏览器中工作。

function r_loadResources(color) {
    var rows='';    
    var index =1;
    container = document.getElementById('color_table');
    for(i=0;i<color['R'].length;i++) {  
    if(I%8==0) {
        rows = document.createElement('tr');
        rows.setAttribute("id","row"+i);
        container.appendChild(rows);    
    }
    if(document.getElementById('row'+i))
    rowids = document.getElementById('row'+i);

    var el = document.createElement('td');
    el.bgcolor = color['hex_value'][i]);
    el.setAttribute("height",'20px');
    el.setAttribute("width",'10px');
    el.setAttribute("onclick","alert("+color['R'][i]+")");
    //el.setAttribute("onmouseover","Tip('"+color['color_name'][i]+"');");
    //el.setAttribute("onmouseout","UnTip();");
    rowids.appendChild(el); 
    }
}

HTML 代码为 <table><tbody id="color_table"></tbody></table>

变量

var color = new Array();
color["color_name"]= new Array("Fire Red","Tomato Red","Magenta","Orange","Yellow","Beige Yellow","Kelley Green","Forest Green","Teal Blue","Process Blue","Royal Blue","Navy Blue","Pastel Purple","Osha Purple","Deep Purple","Burgundy","Light Brown","Dark Brown","Beige","Gold","Silver","Dark Grey","Black","White","Blue","Green","Yellow2");
 color["R"]= new Array("195","218","221","231","252","255","0","0","0","0","0","5","129","140","90","110","116","75","238","183","194","114","31","255","0","37","255");
color["G"]= new Array("38","37","19","120","219","252","154","97","153","175","68","44","109","46","26","29","78","51","227","148","193","112","26","255","61","169","198");
color["B"]= new Array("31","29","123","23","0","184","80","47","152","239","129","81","165","126","116","38","42","31","198","65","193","111","23","255","107","55","30");
color["hex_value"]= new Array("#c3261f","#da251d","dd137b","#e77817","#fcdb00","#fffcb8","#009a50","#00612f","#009998","#00AFEF","#004481","#052c51","#816da5","#8c2e7e","#5a1a74","#6e1d26","#744e2a","#4b331f","#ede3c6","#b79441","#c2c2c1","#72706f","#1f1a17","#ffffff","#003d6b","#25a937","#ffc61e");

输出应为 ![在此处输入图像描述][1] [1]: /image/2u1Qx.jpg

最佳答案

正确的解决方案是 var el = document.createElement('td'); el.onclick = el.onclick = new Function("clickHandler('"+color['R'][i]+"')"); 它适用于所有浏览器。

关于javascript - 如何动态添加 onclick 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20980209/

相关文章:

javascript - 以欧洲格式 (dd-MM-yyyy) 对日期进行排序的正则表达式

internet-explorer - CSS - border-radius 在 IE6/7/8 中不显示

Apache Tomcat 服务器关闭但 web 应用程序仍在运行

IE11 中的 css hover 不会返回到 unhover 样式

Javascript 在元素后追加子项

javascript - 匹配 "doesn' t"包含单词的文本的正则表达式?

javascript - Jest 中的 resetAllMocks、resetModules、resetModuleRegistry、restoreAllMocks 之间的区别

javascript - 如何仅接受来 self 的 API 服务器的 cookie

javascript - 在 HEAD 中最后一个硬编码的 JavaScript 文件引用之后附加 JavaScript 文件引用

javascript - 加载时追加子项