2012-07-11 60 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,以便它在幻燈片完成後運行。