jQuery FadeOut div的作品 - 。然后.fadeIn div不
问题描述:
我正在开发一个WordPress 3.0的主题,我的第一个主题与一点jQuery增强。我试图淡入淡出每个帖子区域的分页。这个想法是,当用户点击“prev”或“next”箭头时,列出的帖子将淡出,帖子的下一页将加载,然后淡入。jQuery FadeOut div的作品 - 。然后.fadeIn div不
淡出工作正常,但新内容不会淡入,它只是在不退色的情况下弹出。它看起来不错,但它没有做我想做的事情,我也无法理清原因。
下面是它现在在开发环境中工作的两个地方(我还没有真正跨过浏览器测试但在FF 3.5,FF 3.6和Chrome之外,所以如果您使用IE,它可能无法按预期工作) :
http://kendraschaefer.com/mandapop/gallery/ http://kendraschaefer.com/mandapop/blog/
而这里的相应的jQuery:
$(document).ready(function(){
$('#postPagination a').live('click', function(e){
$('#blogListColWrapper, #galleryListColWrapper').fadeOut(200).load(link + ' #blogListCol', function(){
$('#blogListColWrapper, #galleryListColWrapper').fadeIn(300);
Cufon.refresh(); });
});
});
我用尽了一切我能想到的。任何想法将不胜感激。
答
即时淡入是因为链接是做什么的默认行为...加载一个新的页面,看你的网址,看看它改变:)
我想你总要找的东西像这样:
$('#postPagination a').live('click', function(e){
var link = this.href;
$('#blogListColWrapper, #galleryListColWrapper').fadeOut(200).each(function() {
$(this).load(link + ' #' + this.id, function(){
$(this).fadeIn(300);
Cufon.refresh();
});
});
e.preventDefault();
});
这有一些变化,首先e.preventDefault()
,以防止实际去到页面的链接。之后link
未定义,您需要从您点击的链接中提取href
属性。有几种方法可以去做.load()
你正在做的#id
部分,我在这里只做了一个简单的.each()
,其中this
指的是实际加载的div,所以你可以抓住id
属性。
这里有没有每一种替代方式,但它会打破更容易,如果都#blogLostColWrapper
和#galleryListColWrapper
在页面...希望这是情况并非如此:
$('#postPagination a').die().live('click', function(e) {
$('#blogListColWrapper,#galleryListColWrapper').fadeOut(200)
.load(this.href + ' #blogListColWrapper,#galleryListColWrapper', function() {
$(this).fadeIn(300);
Cufon.refresh();
});
e.preventDefault();
});
尼克, 这个想法很好用,谢谢。 – KcSchaefer 2010-08-15 21:31:03