window.event
Подскажите пожалуйста как изменить код чтобы в ФФ работало, ивент получает, но переменная current пишет что not defined.
function delete(evt)
{
evt = (evt) ? evt : ((window.event) ? window.event : null);
if(evt)
{
var current = (evt.target) ? evt.target : event.srcElement;
while ( (current = current.parentElement) && current.tagName !="TR");
current.parentElement.removeChild(current);
}
}
Заранее спасибо. |
проблема решается примерно так:
1) ставишь firebug (http://firebug.ru/) 2) вставляешь в цикл console.log(current) (пишет на вкладку console firebug'а) 3) видишь, что цикл не выполняется 4) проверяешь с помощью console.log какое условие не выполняется 5) исправляешь ошибку или задаешь вопрос: "а какой аналог вот этой штуки в ff?" ;) p.s. я бы на твоем месте не добавлял лишние уровни вложенности: if (! evt) return; p.p.s. и поместил бы ; после while на новую строку, а то первое впечатление, что current.parentElement.removeChild(current); - тело цикла p.p.p.s. имхо такая запись тернарного оператора читабельнее:
evt = evt ? evt
:( window.event ? window.event
: null );
|
delete -- зарезервированное слово.
Вместо Цитата:
evt= evt || window.event; Вместо Цитата:
var current = evt.target || evt.srcElement; Вместо Цитата:
while (current.tagName != 'TR')
current = current.parentNode;
Во-первых, так понятней. Во-вторых, в вашем случае не удалится нужный tr, если событие произошло на нем самом (или так и нужно?). Ну и наконец, в-третьих, свойства parentElement нет, в чем у вас и ошибка. :) |
| Часовой пояс GMT +3, время: 15:29. |