Помогите побороть странность IE
От: XJess  
Дата: 23.09.09 23:27
Оценка:
Привет всем!
Пытаюсь динамически создать таблицу — в первой колонке — картинка, которая является ссылкой. В 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, ...) — обработчик все равно не вызвался.

Помогите, плиз, кто знает, что с этим делать. Или, может, я уже просто устала — не вижу чего-то очевидного у себя под носом.
Re: Помогите побороть странность IE
От: Цыба Украина  
Дата: 24.09.09 01:09
Оценка: 2 (1)
Здравствуйте, XJess, Вы писали:

XJ>
XJ>...
XJ>textnode.setAttribute('onclick','javascript:return SomeMethod(this)');
XJ>...
XJ>


попробуй вот так:

textnode.onclick = function () { return SomeMethod(this); };
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.