Как добавить событие двойного щелчка по строке таблицы, используя JavaScript? - PullRequest
3 голосов
/ 27 октября 2009
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;");
}

Кто-нибудь может мне помочь добавить событие двойного щелчка, используя JavaScript, который также будет работать в Internet Explorer?

Ответы [ 3 ]

7 голосов
/ 27 октября 2009

Не устанавливайте обработчики событий, используя setAttribute, это не работает так, как вы ожидаете в IE. Вместо этого установите его непосредственно в эквивалентном свойстве обработчика события элемента:

row.ondblclick = function() {
    return move_to_x_graph();
};
2 голосов
/ 27 октября 2009

С jQuery:

$(row).bind("dblclick", function(){return move_to_x_graph();});

Также, возможно, вы можете добавить его в ячейки вместо строки:

$(row).find("td").bind("dblclick", function(){return move_to_x_graph();});

Если вы не используете jquery, попробуйте, это упростит задачу. Или любой другой фреймворк, такой как Prototype или около того.

0 голосов
/ 27 октября 2009

Вместо передачи строкового аргумента. Попробуйте передать литерал функции так:

row.setAttribute('ondblclick', function () {return move_to_x_graph();});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...