проблема с динамической загрузкой контента с помощью JavaScript - PullRequest
2 голосов
/ 04 апреля 2011

Я работаю над сайтом, который динамически загружает контент в DIV. Все работает нормально, за исключением случаев, когда контент содержит плагин jquery (например, twitterfeed), плагин jquery не работает ... кто-нибудь знает, как заставить работать плагины?

$(function() {

    var newHash      = "",
        $mainContent = $("#main-content"),
        $pageWrap    = $("#page-wrap"),
        baseHeight   = 0,
        $el;


    $("nav").delegate("a", "click", function() {
        window.location.hash = $(this).attr("href");
        return false;
    });

    $(window).bind('hashchange', function(){

        newHash = window.location.hash.substring(1);

        if (newHash) {
            $mainContent
                .find("#guts")
                .fadeOut(200, function() {
                    $mainContent.hide().load(newHash + " #guts", function() {
                        $mainContent.fadeIn(200, function() {
                            $pageWrap.animate({
                                height: baseHeight + $mainContent.height() + "px"
                            });
                        });
                        $("nav a").removeClass("current");
                        $("nav a[href="+newHash+"]").addClass("current");
                    });
                });


        };

    });

    $(window).trigger('hashchange');


});

1 Ответ

2 голосов
/ 04 апреля 2011

Если вы используете $ .load с селектором ($ (target) .load ("url # selector ")), jQuery удаляет все теги SCRIPT из ответа.

Некоторые решениямне на ум приходят:

  1. изменение серверной части так, чтобы она возвращала только содержимое, требуемое сценарием
  2. выполните запрос $ .get, обработайте ответ как простой текст,Выполните манипуляции со строками, чтобы извлечь только те части, которые вам нужны, и затем преобразовать результат в DOM-узлы.Для этого вправо необходим HTML-парсер.
...