Привет всем!
Пытаюсь динамически создать таблицу — в первой колонке — картинка, которая является ссылкой. В onclick этой ссылки задается некий обработчик. Так, вот — в FF 3 все работает — обработчик вызывается. В IE 7 не работает — обработчик не вызывается почему-то при клике. Хотелось бы, чтобы работало в обоих бразерах. Вот примерный код:
var i = 0;
for (i = 0; i < count; ++i)
{
row = document.createElement("TR");
row.id = "TR" + i;
var j = 0;
for (j = 0; j < 4; ++j) //4 столбца
{
cell = document.createElement("TD");
switch(j)
{
case 0:
...
var img = document.createElement('img');
img.border = "0";
img.src = "SomePicture1" + ".jpg";
img.alt = "Some Text";
img.width = "200";
img.height = "200";
textnode = document.createElement('a');
textnode.setAttribute('href', "SomePicture2" + ".jpg");
textnode.setAttribute('class', 'SomeClass');
textnode.setAttribute('onclick','javascript:return SomeMethod(this)');
textnode.appendChild(img);
...
}
cell.appendChild(textnode);
cell.align = "center";
row.appendChild(cell);
...
}
...
tabBody.appendChild(row);
}
Тут одна картинка ссылается на другую, а обработчик их особым образом меняет. Имена картинок соответственно грузятся по определенным правилам — тут, я, думаю, это не важно.
P. S. Что интересно, если написать код просто в духе:
<a href="SomePicture2.jpg" onclick="'javascript:return SomeMethod(this)"><img src="SomePicture1.jpg"/></a>
то в IE все работает, а если динамически — нет. Пыталась заменить setAttribute на установку свойств (className, href, ...) — обработчик все равно не вызвался.
Помогите, плиз, кто знает, что с этим делать. Или, может, я уже просто устала — не вижу чего-то очевидного у себя под носом.
Здравствуйте, XJess, Вы писали:
XJ>XJ>...
XJ>textnode.setAttribute('onclick','javascript:return SomeMethod(this)');
XJ>...
XJ>
попробуй вот так:
textnode.onclick = function () { return SomeMethod(this); };