2012-04-06 11 views
0

私はDrupal 7を使用しており、ページのViewモジュールでコンテンツを取得しています。そして、私のページャは、もっと多くのモジュールを読み込みます。そして、私のサムネイルの効果は、このコードを使用してホバー、影などをホバー:Ajaxをロードした後にホバー(等)効果が働かないMore

var hoverImg = '<div class="hoverimg"></div>'; 

$(".thumb").each(function(){ 
    $(this).children("div").each(function(){ 
     $(this).find("a").append(hoverImg); 
    }); 
}); 

$(".thumb div").hover(function() { 
    $(this).find(".hoverimg").animate({ opacity: 'toggle' }); 
}); 

$(".thumb").hover(function() { 
    $(this).find("div").each(function(){ 
     $(this).find(".shadow").fadeOut(500); 
    }); 
}); 

私の現在のサムネイルに番号を取得します。このコード:

var c = ''; 
var d = ''; 
$('.view-content div.views-row').each(function(){ 
    c = 0; 
    d = 0; 
    var i = 1; 
    d = $(this).find('.thumbimg').length; 
    $(this).find('.thumbimg').each(function(){ 
     sayi=i++; 
     $(this).append('<div class="img_no">0'+sayi+'</div>'); 
    }); 
}); 

すべては問題ありません。開始ページのすべてのエフェクト。しかし、Load Moreボタンをクリックすると、私のエフェクトは別のページで動作しません。

どうすればこの問題を解決できますか?ありがとう。

+0

あなたが他の情報を欲しい少なすぎる情報 –

+0

? – Karmacoma

答えて

1

作業を停止する理由は、ホバー機能(および他のスクリプト/機能)が既存の要素でのみ機能するためです。そのため、ajaxで何かを追加すると、ajaxのロード後にスクリプトをリロードしない限り、それには適用されません。

もう1つのオプションは、live()またはon()を使用することです(ホバー部分については、onはjQuery 1.7で追加されたライブの新しいバージョンです)。 ライブアンド・オンは、既存または将来の要素をリッスンします。

ライブスクリプトは次のようになります。

  $(".yourElement").live({ 
       mouseenter: 
       function() { 
        // Do something 
       }, 
       mouseleave: 
       function() { 
        // Do something 
       }, 
       mousemove: 
       function() { 
        // Do something 
       } 
      }); 
+0

jsでこのライブコードを使用するにはどうすればよいですか? – Karmacoma

関連する問題