0

jQuery を使用して、製品のホバー時にオーバーレイ div を表示しています。ただし、AJAX ページネーションもあります。オーバーレイは「ページ 1」では正常に機能しますが、「ページ 2」では機能しません。

オーバーレイ JS:

jQuery(function () {

jQuery('.proditem').hover(function () {
    jQuery('.productoverlay', this).stop().css({
        "opacity": 0.3
    }, "fast");
},

function () {
    jQuery('.productoverlay', this).stop().css({
        "opacity": 0
    }, "fast");
});
});

「ページ 2」を呼び出して同じページに表示する ajax。

jQuery.ias({
    container : '.category-products',
    item: '.proditem',
    pagination: '.toolbar .pager',
    next: '.next',
    loader: '<img src="images/ajaxscroll/loader.gif" /> Loading more products'
});

これで十分な情報かどうかわかりませんか? ajax ページネーションはプラグインです。

助けてください、たぶん私が見逃している単純なものですか?

ありがとう

マイク

4

2 に答える 2

2
jQuery('body').on({
    'mouseover':  function () {
        jQuery('.productoverlay', this).stop().fadeTo('fast', 0.3);
    },
    'mouseout': function () {
        jQuery('.productoverlay', this).stop().fadeTo('fast', 0.3);
    }
}, '.proditem');

このコードは、まだ存在しない要素に対して機能します。

以下のコメントで示唆されているように、これを行うためのより良い方法は、AJAX ページング後に変更されていない「.proditem」の最も近い親要素に「body」を置き換えることです。

有用な修正についてSinethetaのコメントをアップすることを忘れないでください:)

于 2012-12-04T00:35:25.440 に答える
0

オーバーレイの jQuery は、ページが読み込まれたときにのみ実行されます。したがって、その時点でページにある要素でのみ機能します。AJAX を使用して 2 番目のページをフェッチするときにそれらを新しい要素に置き換える場合は、初期化コードを再度実行する必要があるため、新しい要素でも機能します。

于 2012-12-04T00:21:59.327 に答える