如何使用javascript在表行上添加双击事件?

时间:2009-10-27 10:14:42

标签: javascript javascript-events

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吗?

3 个答案:

答案 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();});