Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как создать атрибут в IE (https://javascript.ru/forum/misc/31529-kak-sozdat-atribut-v-ie.html)

vitorrio 11.09.2012 17:24

Как создать атрибут в IE
 
Часть атрибутов создает и нормально работает а остальные нет:
var but_drop=document.createElement("button");
but_drop.setAttribute("onClick","drop_tr(this)");
//И
var num=1;table=document.getElementById('table');
var row=table.insertRow(num);
var cell=row.insertCell(0);
cell.setAttribute("bgcolor","FF9966");

lord2kim 11.09.2012 17:27

vitorrio, и какие не работают?
/* ........ */
but_drop.onclick = function() { drop_tr(this); }
/* ........ */
cell.style.backgroundColor = "#FF9966";
/* ........ */

vitorrio 11.09.2012 19:26

lord2kim,
Спасибо, все отлично работает=)Теперь еще бы научиться отличать атрибуты которые settAtribute-ом не работают, а то некоторые ведь работают...

lord2kim 11.09.2012 19:55

vitorrio, bgColor и т.п. не используйте, пользуйтесь style-ом
еще можно так
but_drop.setAttribute("onclick", function () { alert(this); });

vitorrio 11.09.2012 20:00

lord2kim,
Еще одна проблемка в IE :

name.onKeyPress = function() { save_name(this); }
name.onchange = function() { save_name(this); }
//нормально все прописывается
name.removeAttribute("onKeyPress");
name.removeAttribute("onchange");
//атрибут не убирается, продолжает сохранять

vitorrio 11.09.2012 20:15

в общем сделал так:

name.onKeyPress = function() { }
name.onchange = function() { }

Ни NULL ни false ни delete не работает, приходится только так ... перезаписывать.

lord2kim 11.09.2012 20:26

vitorrio, для удаления обработчиков используется detachEvent / removeEventListener, но они не работают для атрибутов, заданных на элементе
http://javascript.ru/tutorial/events/crossbrowser

bes 11.09.2012 20:52

Цитата:

Сообщение от vitorrio
в общем сделал так:

name.onKeyPress = function() { }
name.onchange = function() { }

Ни NULL ни false ни delete не работает, приходится только так ... перезаписывать.

всё нормально работает
<button onmousedown="this.innerHTML += ' click'" onmouseup="this.removeAttribute('onmousedown')">click</button>
<script>
document.body.onclick = function () {
	alert('');
	this.onclick = null;
}
</script>

писать нужно в нижнем регистре

в IE да - не удаляет событийные атрибуты
http://www.quirksmode.org/dom/w3c_core.html
Цитата:

IE5-7 and Opera don't remove event handlers.


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