var nextRow = tbl.tBodies[0].rows.length;
var row = tbl.tBodies[0].insertRow(nextRow);
row.setAttribute('ondblclick', "return move_to_x_graph();");
此代码将在行上添加双击事件。 但问题是它在Internet Explorer的情况下不起作用。在所有其他浏览器的情况下工作正常。
为了添加样式,我正在处理:
var cell2 = row.insertCell(1);
var browser = navigator.appName;
if (browser == "Microsoft Internet Explorer") {
cell2.style.setAttribute("cssText", "color:black; width:300px;");
} else {
cell2.setAttribute("style", "color:black; width:300px;");
}
有人可以帮我添加双击事件,使用也能在Internet Explorer中运行的JavaScript吗?
答案 0 :(得分:7)
不要使用setAttribute
设置事件处理程序,它不能像IE中预期的那样工作。而是将其直接设置在元素的等效事件处理程序属性中:
row.ondblclick = function() {
return move_to_x_graph();
};
答案 1 :(得分:2)
使用jQuery:
$(row).bind("dblclick", function(){return move_to_x_graph();});
此外,也许您可以将其添加到单元格而不是行:
$(row).find("td").bind("dblclick", function(){return move_to_x_graph();});
如果您不使用jquery,请尝试一下,这会让事情变得更容易。或任何其他框架,如Prototype等。
答案 2 :(得分:0)
而不是传递字符串参数。尝试传递这样的函数文字:
row.setAttribute('ondblclick', function () {return move_to_x_graph();});