2012-07-11 63 views
0

UPDATE Flexslider有一堆回调空间可供使用。为什么.attr('title')抓住前一个元素的标题

after: function(){},   //Callback: function(slider) - Fires after each slider animation completes 

谢谢大家

LIVE CODE
我上传调试现场代码;因为这样做会很困难。

问题:函数fetchTitle()抓取前一个图像标题,而不是最新的?

说明:我有一个函数fetchTitles()地方自然落下这需要一个标题标签从flexslider并把它由活性滑入varible targetTitle。然后替换h1.head_linetargetTitle

脚本:(从全脚本配对下来,请查看实时代码全)

function fetchTitles() { 
     var targetTitle = $('.flex-active-slide').find('img').attr('title'); 

     $('.head_line').text(targetTitle); 

    } 

HTML

<li class="flex-active-slide"> 
    <article class="active_work" title="Facebook + Like Pillow"> 
     <figure> <img title="Facebook + Like Pillow" src="asset/img/1600/slide1_1600.jpg" /> 
     <figcaption class="sliderCaptions"> 
      <h1> 
      <div class="animate_text"></div> 
      <a href="https://plus.google.com/104865624796200130935/" ><span>Author:</span> Matthew Harwood</a></h1> 
     </figcaption> 
     </figure> 
     <section class="article_post"></section> 
    </article> 
    </li> 

附加信息:

  • 如果你点击链接两次,你会看到标题会自动更新。
  • 文件准备就绪的提取标题出现不明,甚至有一个.flex-active-slide准备好。
  • 的脚本是在源的底部在script2.js
+2

该类不会立即添加,因此它在点击事件时没有更新。如果存在,请尝试使用flexslider插件中的事件。从文档开始,http://flex.madebymufffin.com/index.html - >高级选项卡 – 2012-07-11 19:43:09

+2

'让这样一个jsfiddles将是相当困难的 - 你真的应该能够制作一个[Short,Self-Contained ,正确示例](http://meta.stackexchange.com/questions/22754/sscce-how-to-provide-examples-for-programming-questions)的问题;通常我发现这样做有时可以帮助我解决问题。 – saluce 2012-07-11 19:45:51

+0

这不仅仅是一个计时器问题。如果您等待 - 动画结束时没有设置状态。当你再次点击时,标题会改变。什么是逻辑顺序需要? – MyStream 2012-07-11 19:50:03

回答

1

这确实是一个时间问题。如果我介绍的setTimeout,问题就消失了

function fetchTitles() { 
     setTimeout(function() 
     { 
      var targetTitle = $('.flex-active-slide').find('img').attr('title'); 

      $('.head_line').text(targetTitle); 

     },200); 
    } 
+0

我相当喜欢这种方法比使用woothemes回调更快。 – 2012-07-11 20:07:37

1

使用$.prop代替:

var targetTitle = $('.flex-active-slide').find('img').prop('title'); 

属性和特性之间的差异可以在特定情况下是重要的。 在jQuery 1.6之前,.attr()方法有时在检索某些属性时会考虑属性值,这可能会导致行为不一致。 从jQuery 1.6开始,.prop()方法提供了显式检索属性值的方法,而.attr()检索属性。

+0

它仍然在做它,但很好的捕获我会上传新的代码与道具 – 2012-07-11 19:46:42

+3

根据1.6.1博客文章中的表格,标题仍应该访问.attr http://blog.jquery.com/2011/05/12/jquery-1-6-1-released/ – 2012-07-11 19:46:59

+0

Dangit,你说的对,两者仍然是一样的。不过,小提琴会帮助很多*。 – 2012-07-11 19:50:16

1

它看起来像类没有更新,直到幻灯片动画结束后,但是当你点击fetchTitles将立即运行,所以用“柔性形象“活动幻灯片”类仍然是以前的图像。

您可能想要查看回调函数中运行的fetchTitles,以便它在幻灯片完成后运行。

相关问题