2012-01-27 7 views
3

私はたくさんのコードを書いていますが、ここに投稿するのを避けたいのですが、もし私がする必要があれば、私は同じようなことを模倣します。JQuery - load()を使ってdivにページを読み込む - アンロードするには?

私の問題は、(load()を使って)ページをロードしてから、(fadeIn()を使って)非表示にすることです。このdivを配置する時間が来ると、空のページをdivにロードしてから消滅させます。私はそれにjavascriptの警告を置くことによって空のページをテストして、それは実際にロードされますが、最初のページのdivにロードされたJavascriptはまだ実行されています。このJavascriptは現在親ページに属していますか?それはもはや実行されていないか利用可能になるようにそれをアンロードする方法はありますか?私は別の動的コンテンツで後でページを再度ロードする必要があります。また、実行中のJavascriptと同じJavascriptとの競合は、再び読み込まれます。そしてまた。

この説明が理解できることを望みます。私の問題はおそらくかなりシンプルで、私がまだ理解していない階層と関係していると思います。

ありがとうございました!

-------------編集

はここでロードされたページではJavaScriptです。クラスが参照するすべてのクラスとIDが、ロードされたページ内に存在します。

//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); 
}); 
+0

div内のjavascriptには、それ以外の要素のイベントなどが含まれていますか?あなたはjavascriptを提供できますか? –

+0

上記のJavascriptを追加しました。 – Imaginary

答えて

1

Javascriptを毎回してロードされたページの変更の内容のみと同じである(コードがhttp://www.ilovecolors.com.ar/で符号化されたタブの動作から構成されている)(Iは、コンテンツの変更を想定してか、他のすべての時間をすることはないだろう、それをリロードセンス)。そのため、私はdivの中にロードされているファイルの外にスクリプトを持ち、メインページに一度だけロードします。

+0

divがリロードされるたびにタブの量が変わるので、新しいページがロードされたときにタブ配列を再作成する必要があります。可能であれば、どうすればいいか分かります。 – Imaginary

+0

あなたのコメントと私のコードの最近の変更は、私がなぜこのようにページをロードしているのか不思議に思っています。私はまだ新しいページが読み込まれた後にJavascriptがなぜ動くのか不思議です。Javascriptは別のスペースに存在しますか? – Imaginary

+0

はい、可能です。 jQuery .load()は、第2引数としてコールバック関数を受け入れます。そこにコンテンツをロードした後に実行したいコードを入れて – Wesley

関連する問題