0
我剛剛嘗試過Mike Alsup的Cycle Plugin。看起來很簡單,很容易爲我正在構建的頁面。但現在,我遇到了一個問題。Jquery Cycle插件,更新內容後更新滑塊,問題!
我正在將Cycle應用於圖像列表。現在,我試圖摧毀並重新應用插件,但沒有成功。
我觸發('destroy');
當內容更改,並再次應用插件:
$('#slides').cycle('destroy');
$('#slides').cycle({
fx: 'fade',
speed: 'fast',
timeout: 0,
next: '#next',
prev: '#prev'
});
這適用於:
<div id="display">
<a href="#" id="prev">Previous</a>
<a href="#" id="next">Next</a>
<div class="imgcontainer">
<ul id="slides">
> List of images to go into slideshow. <
</ul>
</div>
<div class="infocontainer">
<h2> Object title </h2>
<p> Object information </p>
</div>
</div>
似乎一切都很好,直到我嘗試更新滑塊後改變形象:
TypeError: 'null' is not an object (evaluating 'p.cycleTimeout')
javascript in whole;
$('#projects > li').click(function(){
var a = $(this);
$('#display .imgcontainer ul').html((a).children('ul.images').html());
$('#display .infocontainer h2').html((a).children('h2').html());
$('#display .infocontainer p').html((a).children('p').html());
if(!$(a).hasClass('sub'))
{
var title = $(this).attr('title');
$(a).siblings("[title='" + title + "']").toggle();
}
var imgcount = $('.imgcontainer li').size();
// Only apply plugin if there's more than one image in the list.
if(imgcount > 1)
{
$('#slides').cycle('destroy');
$('#slides').cycle({
fx: 'fade',
speed: 'fast',
timeout: 0,
next: '#next',
prev: '#prev'
});
}
});
呀。但我不認爲這將滿足我的需要,因爲我不添加一些圖像,而是用一個完整的新圖像替換圖像列表。還是我得到了addSlide都錯了? – Xavio
啊。那麼,我認爲在一個不存在的幻燈片上調用destroy是你的問題。也許在初始化它時向幻燈片ul添加一個類,然後在銷燬它之前檢查該類,例如'if($('#slides')。hasClass('cycle'))$('#slides')。cycle('destroy');' –
也使用了一個[cached selection](http:// jquery-howto .blogspot.com/2008/12 /高速緩存功能於jquery.html) – rtpHarry