Как запустить обработчики событий после загрузки содержимого AJAX в JQuery - PullRequest
1 голос
/ 23 января 2010

Я пытаюсь использовать AJAX-запрос для загрузки некоторой информации в таблицу с использованием JQuery. Я могу легко загрузить контент, но у меня возникают проблемы с добавлением обработчиков событий для применения стиля к загруженному контенту.

Я применяю виджет чередования к таблице. Однако, когда мой запрос AJAX возвращается и моя информация добавляется в тело таблицы, стиль не применяется.

В руководстве JQuery упоминается использование события load для обработки этого, но я не могу заставить его работать.

Любая помощь будет оценена.

$(document).ready(function(){
    $("#cowTable").tablesorter();
    addTableStriping();
});

function addTableStriping(){
    $("#cowTable").tablesorter({
        // striping looking
        widgets: ['zebra']  
    });
};

$(function(){
    $("#loadCowsButton").click(function(){
        $.post("loadCows.php", "scottm", function(xml) {
            $("#cowTable tbody").append(xml);
        });
    });
});

Ответы [ 5 ]

2 голосов
/ 27 января 2010

Я нашел решение для этого. Вам нужно вызвать «applyWidgets» после обновления. Спасибо всем за помощь, я бы не узнал об этом без вашей помощи.

$(function(){
    $("#loadCowsButton").click(function(){
        $.post("loadCows.php", "scottm", function(xml) {
            $("#cowTable").append(xml);
            $("#cowTable").trigger("update");
            $("#cowTable").trigger("applyWidgets")
        });
    });
});
1 голос
/ 23 января 2010

Это то, что вы должны сделать:

Нашел его на веб-сайте .

Суть в том, что вы должны позвонить $( "#cowTable" ).trigger( "update" ); после добавления данных.

1 голос
/ 24 января 2010

Почему бы просто не вызвать его в обратном вызове AJAX?

$(function(){
    $("#loadCowsButton").click(function(){
        $.post("loadCows.php", "scottm", function(xml) {
            $("#cowTable tbody").append(xml);
            addTableStriping(); // <-- here
        });
    });
});
1 голос
/ 23 января 2010

Возможно, вы захотите попробовать Плагин Livequery

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

0 голосов
/ 24 января 2010

это должно сделать это ..

$(function(){
    $("#loadCowsButton").click(function(){
        $.post("loadCows.php", "scottm", function(xml) {
            $("#cowTable tbody").append(xml);
            $("#cowTable").trigger( "update" );
        });
    });
});
...