У меня есть ретранслятор asp.net, который создает неупорядоченный список объектов гиперссылки. Я пытаюсь использовать Jquery для захвата значения «Текст» данной гиперссылки для гнусных целей, чтобы прийти позже.Невозможно получить свойство asp.net Текстовое свойство с JQuery
Вот репитер создает свой список O»ссылок:
<ul class="links">
<asp:Repeater Runat="server" ID="_items" EnableViewState="false">
<ItemTemplate>
<li>
<asp:HyperLink ID="HyperLink1" runat="server" Text='[Eval]' NavigateUrl="#" onclick="return aClick();" />
</li><br />
</ItemTemplate>
</asp:Repeater>
</ul>
... и Javascript для этой функции aClick():
function aClick() {
alert("Click " + $(this).text());
return false;
}
Все я получаю, когда это работает это предупреждение который читает «Щелчок». Текст из объекта, который вызвал функцию, не возвращается (и да, все мои ссылки имеют текст.)
Я пробовал event.target для JQuery docs, я пробовал event.srcElement (хотя я использую Chrome), и я попытался переместить $ (this) .text() в отдельную переменную в начале функции, а затем ссылаться на переменную в своем предупреждении. Я пробовал JQuery 1.8.2 и 1.11.2. Ничего.
Я вижу из инструментов dev, что $ (this) относится к глобальному окну, а не к объекту, вызвавшему событие, поэтому ясно, что мне нужна помощь в выяснении того, как исправить это.
Спасибо, что расчистили это. Оба ваших примера работают, но, к сожалению, второй (с обработчиком, включенным в поле $ (function() {'), открывается окно с двойным щелчком - предупреждение, я нажимаю ok, открывается второе окно предупреждения. – bmurrell30
@ bmurrell30: Я бы также посоветовал использовать 'console.log' для отладки событий кликов, а не' alert':) –