Использование hasClass () с делегатом jQuery? - PullRequest
1 голос
/ 08 февраля 2011

У меня есть gridview (gdvMyInfo), который содержит q столбцов ссылок, которые я перехватываю с помощью jQuery.

$('#<%= gdvMyInfo.ClientID %>').delegate('a', 'click', function(){
    var link = $(this).attr('href');
    ....
    return false;
});        

Это прекрасно работает, но теперь будет второй столбец, содержащий ссылки, и мне нужновключить пейджингТеперь я присоединяю мои изменения jQuery к этим новым ссылкам.

У меня есть класс "myInfoClass" на нужных мне ссылках, но использование этого класса в качестве селектора, похоже, не работает для меня (не уверен, что это делегат, так как без него он выбирает нормально).

$('.myInfoClass').delegate('a', 'click', function(){

это не работает, поэтому я подумал, что я мог бы использовать функцию .hasClass (), но это также не работает.

$('#<%= gdvMyInfo.ClientID %>').hasClass('myInfoClass').delegate('a', 'click', function(){

Это происходит с сообщением об ошибке ".делегат не является функцией "

Итак, есть ли идеи о том, как я могу связать селектор с помощью делегата, чтобы получить любой <a> в моем gridvie" gdvMyIfno "с классом" myInfoClass "при использовании делегата?1015 *

1 Ответ

2 голосов
/ 08 февраля 2011

Просто добавьте класс в селектор:

$('#<%= gdvMyInfo.ClientID %>').delegate('a.myInfoClass', 'click', function(){

Теперь click будет срабатывать только для <a> элементов, которые имеют класс myInfoClass.

Способ .delegate() работает так: он помещает обработчик в контейнер #<%= gdvMyInfo.ClientID %>.Затем элементы, щелкнувшие внутри этого контейнера, сравниваются с селектором a.myInfoClass.Если элемент соответствует селектору, вызывается обработчик.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...