我正在创建一个博客预告页面,当您点击预告片中的链接时,它会通过预告片下面的ajax加载完整的博客,然后一旦ajax停止,它就会激活预告片(通过切换)和动画在新加载的博客页面上(通过双切换)。这很好用。我的问题是,当用户点击另一个博客预告片时,我希望它为这个新的预告片重复同样的事情(就像它的功能一样!)但是也要切换之前切换的博客页面和预告片(以便以前加载的博客页面变得隐藏,并且它的相应预告片再次出现。)我根本无法弄清楚如何重新切换上一个函数调用中使用的选择器。
html具有以下格式 -
<div id="[unique]">
<div class="teaser-content">
<div class="thumb"><?php print $img; ?></div>
<div class="teaser-right">
<h1><?php print $node->title; ?></h1>
<div class="teaser-text"><?php print $stripped; ?></div>
<div class="links"><?php print $links; ?></div>
<a class="ajaxurl" href="/mysite?q=blogintaxpage/<?php print $node->nid; ?>?ajax=true" id="<?php print $node->nid; ?>">Read blog</a>
</div>
</div>
<div class="selected-blog"></div>
</div?
这是现在的功能 -
打开功能
$('.ajaxurl').click(function() {
隐藏以前加载的博客页面,如果变量是从以前的功能调用设置的(即如果这不是第一次点击)
if (thisid) {
thisid = '#'+thisid+' .selected-blog';
$(thisid).hide();
}
设置变量
var thisid = $(this).parent().parent().parent().attr("id");
var targetdiv = $('#'+thisid).children('.selected-blog');
将相关的博客页面加载到相关的博客中。
targetdiv.load($(this).attr('href'));
在加载页面时执行动画
targetdiv.ajaxStop(function(){
如果先前的功能调用设置了变量(例如,如果这不是第一次点击),请拨打以前隐藏的TEARER
if (teaser) { teaser.animate({
height: 'toggle'
}, 500
);}
设置TEASER VARIABLE
var teaser = $('#'+thisid).children('.teaser-content');
隐藏当前的血统
teaser.animate({
height: 'toggle'
}, 500
);
隐藏当前的博客页面,然后显示为1000(双击切换以使其动画显示)
$(this).animate({
height: 'toggle'
}, 0
);
$(this).animate({
height: 'toggle'
}, 1000
);
关闭
});
return false;
});
点击一个链接(link-1),加载页面,隐藏预告片然后显示加载的页面。应该如此。
单击另一个不同的链接(link-2)会显示以前隐藏的link-1预告片,但不会隐藏之前显示的link-1的博客页面,因此两者都可见,它与预告片和博客一样与新链接-2相关。
第三次点击新链接(link-3)隐藏了link-1的预告片(link-1的博客页面仍然存在),显示了之前隐藏的link-2预告片及其各自的博客页面,尽可能地使用与新链接-3相关的预告片和博客。
换句话说,似乎所有以前的戏弄都在每次点击时切换,而不仅仅是最后一次,博客页面一旦开启就永远不会被切换。
我确信这是一个非常简单的东西,我很想念,但它让我难以忍受了6个小时!!
非常感谢!