2011-12-29 34 views
0

我有這個問題,我覺得這有點難以解釋,但我會嘗試:jQuery的節目格形成另一頁

我有淡入和淡出一些divs從其他頁面與load()功能上採取了頁點擊事件。其中一個divs包含一系列使用Jquery.Cycle顯示的圖片。雖然在頁面本身jquery.Cycle工作正常,但當導入到頁面時,它不會。希望我的解釋清楚。

導入的代碼是這樣的:

$('#wrapper a').live("click", function(evt) { 

    evt.preventDefault(); 

    var url = $(this).attr('href'); 
    var oldDiv = $('#wrapper-content'); 
    var newDiv = $('#wrapper-content1').load(url + ' #wrapper-content'); 
    newDiv.hide(); 
    $('#wrapper-mid-in-right').prepend(newDiv); 
    newDiv.fadeIn(1000); 
    oldDiv.fadeOut(1000,function() { 

    $(this).remove(); 
    }); 

}); 

正如所說的週期的影響工程確定在頁面上。請幫幫我。 F.

$('#gallery').cycle({ 
fx: 'scrollRight', 
timeout: 100000, 
speed: 500, 
delay: -2000, 
pager: '#pager' 

});

+0

你需要重新調用循環初始化負載完成後,它應該工作 – 2011-12-29 11:31:54

+0

嗨託尼。感謝您的評論。你能告訴我如何重新打電話嗎?對不起,這不是我以前做過的事情。 – firefiter 2011-12-29 11:38:33

+0

我發佈了一個答案,請讓我知道如果我理解得好 – 2011-12-29 12:43:23

回答

0

我相信你的問題與你發佈的代碼塊無關。該插件在網頁作品因爲一些事情本身:

  1. 週期插件加載
  2. 標記已經存在
  3. 插件適當啓動($(document).ready()等)

將此內容動態加載到頁面中時,這些事實可能都不是真實的。

  1. 循環插件是否在本頁面中加載?
  2. 您必須在導入新標記後啓動Cycle插件。

的JS在父頁面(加載循環內容的頁面)應該是大致一樣:

$('#wrapper-content1').load(url + ' #wrapper-content', function() { 
    $('#gallery').cycle({ 
     fx: 'scrollRight', 
     timeout: 100000, 
     speed: 500, 
     delay: -2000, 
     pager: '#pager' 
    }); 
}); 
+0

是的我明白,問題是因爲插件沒有「看到」新的div加載。但它已經加載到頁面上了。問題是如何讓頁面「看到」包含Cycle的新div已經在頁面中加載並作出反應? – firefiter 2011-12-29 11:41:43

+0

就像我在答案中的代碼塊中演示的那樣。 'my_cycle_stuff.foo'的內容將被加載到'#target'中。然後,假設新內容有一個'#my_slideshow'元素,'cycle'將應用於它。 – 2011-12-29 11:46:05

+0

我嘗試過使用您的建議,但仍然無法正常工作 – firefiter 2011-12-29 11:50:39

0

嘗試更改如下,我希望它會幫助你。我寫了關於代碼旁邊更改的評論

function cycleFunction(){ 
// implement cycle functionality here 
} 

$(document).ready(function(){ 
    cycleFunction(); // calling function for 1st time 

    $('#wrapper a').on("click", function(evt) {  
    evt.preventDefault(); 

    var url = $(this).attr('href'); 
    var oldDiv = $('#wrapper-content'); 
    var newDiv = $('<div>').attr('id','wrapper-content1'); // create the div with id 
    $('#wrapper-mid-in-right').prepend(newDiv); include in the existing div 
    $('#wrapper-content1').load(url + ' #wrapper-content', function(){ 
     cycleFunction(); // calling function everytime div load 
    }); // load the new div 
    });  
}); 
+0

謝謝dku。不幸的是它不起作用。它瞬間消失並消失。在這種情況下,主要問題是直到那裏。 – firefiter 2011-12-29 11:37:01

+0

更新了代碼..只是嘗試一次.. – 2011-12-29 12:44:53

+0

再次感謝,但仍然無法正常工作。 Div不會被導入,並且在螢火蟲中沒有任何錯誤。 – firefiter 2011-12-29 12:59:02

0

嘗試這樣

$('#wrapper a').live("click", function(evt) { 

    evt.preventDefault(); 

    var url = $(this).attr('href'); 
    var oldDiv = $('#wrapper-content'); 
    var newDiv = $('#wrapper-content1').load(url + ' #wrapper-content'); 
    newDiv.hide(); 
    $('#wrapper-mid-in-right').prepend(newDiv); 
    newDiv.fadeIn(1000); 
    oldDiv.fadeOut(1000,function() { 

    $(this).remove(); 
    }); 


    $('#gallery').cycle({ 
     fx: 'scrollRight', 
     timeout: 100000, 
     speed: 500, 
     delay: -2000, 
     pager: '#pager' 

    }); 

}); 
+0

沒有運氣!仍然沒有工作 – firefiter 2011-12-29 12:50:08

+0

你能提供一個鏈接嗎? – 2011-12-29 14:48:58

+0

Hi Toni。我使用Ayman的建議工作(接受回答)。謝謝。 – firefiter 2011-12-29 16:23:38