0

何らかの理由で、無限スクロールでロードされた新しいコンテンツには適用されないホバー画像機能があります。

これはホバー機能です:

function hover_overlay_article() {

     jQuery('a.thumblink, a.rating').each(function() {

     jQuery(this).hover( function() {
        $selector =  jQuery(this).parent().children('a.thumblink').children('img');
        $selector.stop().animate({opacity : .1}, 250, 'easeOutCubic');
    }, function() {
        $selector.stop().animate({opacity : 1}, 250, 'easeOutCubic');
    });

  });
}

hover_overlay_article();

そして、これは私の無限スクロールです:

<script>
  var infinite_scroll = {
  loading: {
img:"/_assets/images/ajax-loader.gif",
msgText: "",
finishedMsg: ""
},
   "nextSelector":"a.next.page-numbers",
   "navSelector":"div.pagination",
   "itemSelector":"div.fullarticle",
   "contentSelector":".articlecontainer"
};

 jQuery( infinite_scroll.contentSelector ).infinitescroll( infinite_scroll );
</script>

誰かがこれを修正するのを手伝ってくれますか?

御時間ありがとうございます。

4

2 に答える 2

0

関数を追加する必要がありhover_overlay_article()ますcallback()。そのようなことを試してください:

<script>
    var infinite_scroll = {
        loading: {
            img:"/_assets/images/ajax-loader.gif",
            msgText: "",
            finishedMsg: ""
        },
        "nextSelector":"a.next.page-numbers",
        "navSelector":"div.pagination",
        "itemSelector":"div.fullarticle",
        "contentSelector":".articlecontainer"
        }, function(arrayOfNewElems) {
            hover_overlay_article();
        });

    jQuery( infinite_scroll.contentSelector ).infinitescroll( infinite_scroll );
</script>

それが機能する場合は、最新の要素でのみ関数を実行するようにコードを変更してみてください。最初の要素が jQuery メソッドによって再び影響を受けるようになりました。これはあなたができることの例です:

function(arrayOfNewElems) {
    for(var i=0;i<arrayOfNewElems.length;i++)
    hover_overlay_article(arrayOfNewElems[i]);
}
于 2013-04-06T10:47:41.090 に答える
0

これを試して:

<script>
      var infinite_scroll = {
      loading: {
    img:"/_assets/images/ajax-loader.gif",
    msgText: "",
    finishedMsg: ""
    },
       "nextSelector":"a.next.page-numbers",
       "navSelector":"div.pagination",
       "itemSelector":"div.fullarticle",
       "contentSelector":".articlecontainer"
    }, function(arrayOfNewElems){

        hover_overlay_article();
    });

     jQuery( infinite_scroll.contentSelector ).infinitescroll( infinite_scroll );
    </script>

これにより、既存の要素にホバーするための重複したイベントが登録されることに注意してください。最初にそれらを削除するか、「arrayOfNewElements」で何かを行う必要があります。

于 2013-04-06T10:50:25.523 に答える