0

UPDATE Flexsliderには、これを可能にするためのコールバックスペースがたくさんあります。

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

みんな、ありがとう

ライブコード
デバッグ用にライブコードをアップロードしました。これのjsfiddlesを作るのはかなり難しいでしょう。

問題: 関数fetchTitle()は、最新ではなく前の画像タイトルを取得しますか?

説明:fetchTitles()フレックススライダーのアクティブなスライドからタイトルタグを取得し、それを変数に配置する関数が失敗しましたtargetTitle。次に、に置き換えh1.head_lineますtargetTitle

スクリプト:(完全なスクリプトとペアになって、完全なライブコードを表示してください)

 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>

追加情報:

  • リンクを2回クリックすると、タイトルが自動的に更新されることがわかります。
  • 準備完了のドキュメントのフェッチタイトルは、準備完了があったとしても識別されません.flex-active-slide
  • スクリプトは、ソースの下部にありますscript2.js
4

3 に答える 3

1

$.prop代わりに使用してください:

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

属性とプロパティの違いは、特定の状況で重要になる可能性があります。jQuery 1.6より前では、.attr()メソッドは一部の属性を取得するときにプロパティ値を考慮に入れることがあり、これにより一貫性のない動作が発生する可能性がありました。jQuery 1.6以降、このメソッドは、属性を取得.prop()しながら、プロパティ値を明示的に取得する方法を提供し.attr()ます。

于 2012-07-11T19:43:16.967 に答える
1

それは確かにタイミングの問題です。setTimeoutを導入すると、問題は解消されます

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

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

       },200);
    }
于 2012-07-11T19:55:01.313 に答える
1

スライドアニメーションが終了するまでクラスは更新されていないようですが、クリックするとすぐにfetchTitlesが実行されるため、「flex-active-slide」クラスの画像は引き続き前の画像です。

スライドが完了した後に実行されるように、コールバック関数でfetchTitlesを実行することを検討することをお勧めします。

于 2012-07-11T19:57:42.873 に答える