JQuery - загрузка страницы в div с помощью load () - как выгрузить? - PullRequest
3 голосов
/ 27 января 2012

У меня много кода, и я хотел бы не публиковать все это здесь, но если мне нужно, я сделаю это или сделаю что-то похожее.

Моя проблема в том, что у меня есть скрытый div, в который я загружаю страницу (с помощью load ()), а затем скрываю (с помощью fadeIn ()). Когда приходит время убрать этот div, я загружаю пустую страницу в div, а затем исчезаю. Я протестировал пустую страницу, поместив в нее предупреждение javascript, и она действительно загружается, но Javascript, который я загрузил в div на первой странице, все еще работает. Этот Javascript теперь принадлежит родительской странице? Есть ли способ разгрузить его, чтобы он больше не работал или не работал? Мне нужно позже снова загрузить страницу с другим динамическим содержимым, и все еще работающий Javascript конфликтует с тем же Javascript, который загружается снова. И снова.

Надеюсь, это описание понятно. Я предполагаю, что моя проблема, вероятно, довольно проста и связана с иерархиями, которые мне только предстоит понять.

Спасибо!

------------- edit

Вот Javascript на загруженной странице. Все классы и идентификаторы, на которые он ссылается, существуют на загруженной странице. (код адаптирован из поведения табуляции, кодируемого http://www.ilovecolors.com.ar/)

    //array to store IDs of our tabs
var tabs = [];
//index for array
var ind = 0;
//store setInterval reference
var inter = 0;

//change tab and highlight current tab title
function change(stringref){
    //hide the other tabs
    jQuery('.tab:not(#' + stringref + ')').hide();
    //show proper tab, catch IE6 bug
    if (jQuery.browser.msie && jQuery.browser.version.substr(0,3) == "6.0")
        jQuery('.tab#' + stringref).show();
    else 
        jQuery('.tab#' + stringref).fadeIn(200);
    //clear highlight from previous tab title
    jQuery('.htabs a:not(#' + stringref + 't)').removeClass('select');
    //highlight currenttab title
    jQuery('.htabs a[href=#' + stringref + ']').addClass('select');
}
function next(){
    alert("change");
    //call change to display next tab
    change(tabs[ind++]);
    //if it's the last tab, clear the index
    if(ind >= tabs.length)
        ind = 0;
}
jQuery(document).ready(function(){
    //store all tabs in array
    jQuery(".tab").map(function(){
        tabs[ind++] = jQuery(this).attr("id");
    })
    //set index to next element to fade
    ind = 1;
    //initialize tabs, display the current tab
    jQuery(".tab:not(:first)").hide();
    jQuery(".tab:first").show();
    //highlight the current tab title
    jQuery('#' + tabs[0] + 't').addClass('select');
    //handler for clicking on tabs
    jQuery(".htabs a").click(function(){

        //if tab is clicked, stop rotating 
        clearInterval(inter);
        //store reference to clicked tab
        stringref = jQuery(this).attr("href").split('#')[1];
        //display referenced tab
        change(stringref);
        return false;
    });
    //start rotating tabs
    inter = setInterval("next()", 3500);
});

1 Ответ

1 голос
/ 27 января 2012

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

...