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, время: 09:50. |