Проблема JQuery .load - PullRequest
       5

Проблема JQuery .load

0 голосов
/ 16 мая 2009

У меня есть веб-страница с полями формы поиска и нажатием кнопки отправки я делаю Ajax-вызов и заполняю div результатами, используя Ajax.BeginForm

Результаты содержат ссылки на пейджинг для обработки пейджинга.

Проблема в том, что после вызова Ajax у меня есть этот код Jquery, который должен срабатывать при нажатии на одну из ссылок подкачки. Но они не стреляют.

Это потому, что div заполняется с помощью вызова Ajax?

Я протестировал этот код, нажав кнопку отправки, и он работает нормально. Просто пейджинговые ссылки не срабатывают.

    $('.pagerlinks a').click(function() {
       $('#resultsdiv').load('Search/Advanced', {Keywords=keywords, etc }); 
});

Ответы [ 3 ]

3 голосов
/ 16 мая 2009

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

http://docs.jquery.com/Events/live

Также ваш код срабатывает при событии DOM ready? как в:

$(function () {
 $('.pagerlinks a').click(function() {
       $('#resultsdiv').load('Search/Advanced', {Keywords=keywords, etc }); 
});

});
2 голосов
/ 16 мая 2009

Еще один способ сделать это - привязать функцию обратного вызова, называемую вторым параметром $.load:

function initPagerlinks()
{
     $('.pagerlinks a').click(function() {
           $('#resultsdiv').load('Search/Advanced', {Keywords=keywords, etc }, initPagerlinks); 
     });
}

$(document).ready(function() {
    initPagerlinks();
});
0 голосов
/ 16 мая 2009

Есть два решения: 1. Добавьте для загрузки функцию обратного вызова, которая устанавливает события для загруженного содержимого. 2. Используйте живые события:

$("p").live("click", function(){ $(this).after("Another paragraph!"); }); http://docs.jquery.com/Events/live

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