Как прикрепить событие jQuery к представлению сетки, которое не видно в готовом документе? - PullRequest
0 голосов
/ 20 декабря 2010

Я пытаюсь подключиться к ссылке в виде сетки с помощью jquery, но сетка находится на панели обновлений и не отображается, пока пользователь не запустит отчет. Если я добавлю класс ".myLink" к любому другому тегу "a", он будет работать нормально, но так как gridView нет в документе. Уже я не уверен, откуда это вызывать

              $(document).ready(function(){
                $('a .myLink').click(function(){
                  var link = $(this).attr('href');
                  alert(link);
                  return false;
                });
              });

Ответы [ 3 ]

3 голосов
/ 20 декабря 2010

Вы можете использовать .live() для обработки событий в элементе, созданном в любое время, например:

$(document).ready(function(){
  $('a .myLink').live('click', function(){
    var link = $(this).attr('href');
    alert(link);
    return false;
  });
});

Если у вас есть контейнер, в котором он появится, иэто не заменяется, вы можете использовать .delegate(), чтобы быть более эффективным, как это:

$(document).ready(function(){
  $('#containerID').delegate('a .myLink', 'click', function(){
    var link = $(this).attr('href');
    alert(link);
    return false;
  });
});
1 голос
/ 20 декабря 2010

Метод .live() может воздействовать на элементы, которые еще не были добавлены в DOM, с помощью делегирования события.

Ссылка

1 голос
/ 20 декабря 2010

Посмотрите на jQuery.live ().

http://api.jquery.com/live/

$(document).ready(function(){
    $('a .myLink').live('click', function(){
        var link = $(this).attr('href');
        alert(link);
        return false;
    });
});
...