Jquery显示div形成另一页
我有这个问题,我觉得有点难以解释,但我会尝试:
我有一个页面,在click事件中使用load()
函数淡入和淡出其他页面中的一些divs
。 其中一个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'
});
我相信您的问题与您发布的代码块无关。 由于以下几点,插件在页面本身中起作用:
- 循环插件已加载
- 标记已经存在
- 插件适当启动(
$(document).ready()
等)
在将此内容动态加载到页面中时,这些事实都不是真的。
- 循环插件是否在此页面中加载?
- 导入新标记后,必须启动Cycle插件。
父页面中的JS(加载Cycle内容的页面)应该大致类似于:
$('#wrapper-content1').load(url + ' #wrapper-content', function() { $('#gallery').cycle({ fx: 'scrollRight', timeout: 100000, speed: 500, delay: -2000, pager: '#pager' }); });
试试这样
$('#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' }); });
尝试更改如下,我希望它会帮助你。 我已经写了关于代码旁边的更改的注释
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 = $('').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 }); });