Официальный сайт студ.городка НГТУ
Программирование и БД » jQuery + delegate + ie9 

#1  14.05.12 16:46

kai
Профиль

jQuery + delegate + ie9

есть к примеру html код

Код::

<div class ="req">
   <button class="menu_btn" id="table-btn"><a href="/page.php" id="link1">Link</a></button>

</div>

Есть так же JavaScript на jQuery 1.7.2 или 1.7.1

Код::

$(document).ready(function(){

$('.req').delegate("button","click",function () {
    var url = $(this).find('a').attr('href');
alert(url);

    if (url !== undefined) { // require a URL
            alert(url); // redirect
        }
        return false;
    });

});

Дэк вот, в FireFox и Chrome этот код выдает "/page.php", в Internet Explorer indefined
Понятно, что в ie9 переменная this пустая. Как сделать этот код рабочим для ie9?
Проверить код можно тут http://jsfiddle.net/

Offline

#2  14.05.12 18:20

$up
Профиль

Re: jQuery + delegate + ie9

kai написал(а):

Понятно, что в ie9 переменная this пустая.

вовсе она не пустая
просто IE9 твой html интерпретирует без всякого <a>

а как-то так:

Код::

<button id="table-btn" class="menu_btn">Link</button>

Offline

#3  15.05.12 02:02

Re: jQuery + delegate + ie9

this не может быть пустой.
Зачем пихать в кнопку ссылку?
Если тебе просто нужен урл, то храни его в дата-атрибуте кнопки.

Offline

#4  15.05.12 09:00

kai
Профиль

Re: jQuery + delegate + ie9

Всем спасибо, проблема решилась классическим способом.

Offline

#5  15.05.12 14:15

Re: jQuery + delegate + ie9

Это каким?

Offline

#6  18.05.12 21:17

Re: jQuery + delegate + ie9

Отказом от поддержки ИЕ походу

Offline

Программирование и БД » jQuery + delegate + ie9 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 0.343 сек.
Выполнено 14 запросов.