Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   window.event (https://javascript.ru/forum/events/3205-window-event.html)

gaolong 28.03.2009 11:21

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);
}	
		
}

Заранее спасибо.

x-yuri 28.03.2009 17:15

проблема решается примерно так:
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 );

Kolyaj 31.03.2009 10:52

delete -- зарезервированное слово.

Вместо
Цитата:

Сообщение от gaolong
evt = (evt) ? evt : ((window.event) ? window.event : null);

evt= evt || window.event;


Вместо
Цитата:

Сообщение от gaolong
var current = (evt.target) ? evt.target : event.srcElement;

var current = evt.target || evt.srcElement;


Вместо
Цитата:

Сообщение от gaolong
while ( (current = current.parentElement) && current.tagName !="TR");

while (current.tagName != 'TR')
    current = current.parentNode;

Во-первых, так понятней. Во-вторых, в вашем случае не удалится нужный tr, если событие произошло на нем самом (или так и нужно?). Ну и наконец, в-третьих, свойства parentElement нет, в чем у вас и ошибка. :)


Часовой пояс GMT +3, время: 20:47.