Jquery - 来自先前函数调用的切换元素。

时间:2012-08-28 21:05:46

标签: jquery variables toggle selector

我正在创建一个博客预告页面,当您点击预告片中的链接时,它会通过预告片下面的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个小时!!

非常感谢!

0 个答案:

没有答案