Назначить oncick тегу A (anchor)
Пробую в Firefox динамически создать тэг "A" и назначить ему свой onclick, в текстовом виде, но ничего не выходит.
Смотрю onclick перед и после присвоения, - а он почему-то одинаково равен null и до, и после. В чём дело? Почему нельзя присвоить функцию в тестовом виде, или как это правильно сделать? Вот код: var anch = document.createElement('A'); anch.href='#'; alert('До присвоения: anch.onclick == ' + anch.onclick); anch.onclick = "alert(this); return false; "; alert('После присвоения\n"alert(this); return false; "\n\n== ' + anch.onclick); anch.onclick = "alert(this);"; alert('После присвоения\n"alert(this); "\n\n== ' + anch.onclick); anch.onclick = "javascript:alert(this);"; alert('После присвоения\n"javascript:alert(this);"\n\n== ' + anch.onclick); anch.onclick = "function (){alert(this); return false; }; "; alert('После присвоения\n"function (){alert(this); return false; }; "\n\n== ' + anch.onclick); anch.onclick = "(function (){alert(this); return false; })"; alert('После присвоения\n"(function (){alert(this); return false; })"\n\n== ' + anch.onclick); // а теперь попробуем назначить нетекстовую функцию anch.onclick = (function (){alert(this); return false; }); alert('После присвоения\n(function (){alert(this); return false; })\n\n== ' + anch.onclick); anch.onclick = function (){alert(this); }; alert('После присвоения\nfunction (){alert(this); }\n\n== ' + anch.onclick); anch.innerHTML = 'click here'; document.body.appendChild(anch); |
Сам нашел ответ. Работает это:
anch.setAttribute( "onclick", "alert(this);" ); |
мде, ну и извращённое у тебя мышление, зачем тебе это?
<body><script type="text/javascript"> var anch = document.createElement('a'); anch.onclick = new Function("alert('It,s work')"); anch.innerHTML = 'click here'; document.body.appendChild(anch); </script></body> |
Ух ты, спасибо
|
Skipp,
Ты тоже со странностями ) anch.onclick = function(e) { alert('It,s work'); } |
Цитата:
Например: Атрибуты и обработчики событий В IE текстовое значение, присвоенное атрибуту onclick, не является функцией и не будет работать: elem.setAttribute('onclick', 'alert(something)') // в IE не работает http://javascript.ru/tutorial/dom/at...nye-znacheniya |
danik.js,
Почему со странностями, он просил, Цитата:
|
Skipp, извиняюсь, недоглядел. Значит ТС у нас со странностями :)
|
danik.js,
А может ты со странностями ;) Your, Спасибо большое, буду знать. Тогда остается решение by Skipp. |
Чтоб не осталось неопределенности, кто со странностями,не мог бы ты объяснить зачем тебе именно "текстовый вид" присваивать?
|
Часовой пояс GMT +3, время: 10:31. |