jQuery this.text не работает в IE после живого события - PullRequest
0 голосов
/ 03 января 2011

В настоящее время я пытаюсь обновить свой веб-сайт некоторыми функциями jQuery. Как всегда с веб-разработкой, IE - это боль.

У меня есть список автоматического предложения, который выглядит следующим образом:

<div id="suggestionBox">
    <ul>
        <li>
            <a class="entry" style="display:block;" href="#">somesuggestion</a>
        </li>
        ...
    </ul
</div>

Конечно, предложения поступают с сервера, поэтому я использую функцию load () каждый раз, когда изменяется поле ввода. Это работает все отлично. Проблема в том, что я хочу заполнить поле ввода при нажатии на предложение. Для этого я использую следующий код:

$(".entry").live('click', function() {
    $("#" + $("#suggestionBox").data('input')).val(this.text);
    //and some more stuff
});

Поле данных для SuggestionBox устанавливается, когда поле ввода получает фокус.

Отлично работает в Chrome и FireFox, но не в IE. this.text в приведенном выше коде возвращает неопределенное значение.

Понятия не имею, почему это не должно работать для IE. Кто-нибудь может мне помочь?

Спасибо.

Ответы [ 2 ]

9 голосов
/ 03 января 2011

Почему вы не используете jQuery?

$(this).text()

Элемент a не имеет свойства text в IE .

2 голосов
/ 03 января 2011

Вам нужно использовать функцию jQuery text(), а не свойство, поскольку базовое свойство DOM зависит от браузера:

$("#" + $("#suggestionBox").data('input')).val($(this).text());  
...