2012-01-23 31 views
0

メニューからページをロードするためにajaxに.load()を使用しています。それはうまく動作しますが、私のコンテンツがビューである場合、そのビューにすべてのものがロードされます。ページングは​​考慮されません。つまり100項目の場合、すべてが表示され、ページの下部にページングが表示されます。jQuery .load()がDrupal 7でうまく動作しません。

ページングリンクのいずれかを押すと、ビューは正常に動作します。

私は、次のコードを追加しました:

jQuery(document).ready(function() { 
    jQuery('#menu li a').unbind('click').click(function(){ 
    var href = jQuery(this).attr('href'); 
    var toLoad = href+' #content'; 
    loadContent(); 
    jQuery('#content').hide('slow',loadContent); 
    jQuery('#load').remove(); 
    jQuery('#main-wrapper').append('<span id="load">LOADING...</span>'); 
    jQuery('#load').fadeIn('normal'); 

    function loadContent() { 
     jQuery('#content').load(toLoad,'',function(){showNewContent()}); 
    } 
    function showNewContent() { 
     jQuery('#content').show('normal',hideLoader()); 
    } 
    function hideLoader() { 
     jQuery('#load').fadeOut('normal'); 
    } 
}); 

答えて

0

は、次のようにエラーを修正するだけで試してみてください:あなたの例では

jQuery(document).ready(function() { 
    jQuery('#menu li a').unbind('click').click(function() { 
     var href = jQuery(this).attr('href'); 
     var toLoad = href+' #content'; 
     loadContent(); 
     jQuery('#content').hide('slow', loadContent); 
     jQuery('#load').remove(); 
     jQuery('#main-wrapper').append('<span id="load">LOADING...</span>'); 
     jQuery('#load').fadeIn('normal'); 

     function loadContent() { 
      jQuery('#content').load(toLoad, '', function() { 
       showNewContent(); 
      }); 
     } 
     function showNewContent() { 
      jQuery('#content').show('normal', hideLoader()); 
     } 
     function hideLoader() { 
      jQuery('#load').fadeOut('normal'); 
     } 
    }); 
}); 

追加});が終わりタグを閉じる必要はありません。 。あなたのサイトに同じものがあるなら、あなたは間違いなくあなたのスクリプトに誤りがあります。あなたのコードがうまく書かれていれば、私はあなたのコードを検査しなかったので、それが助けになるかどうかは分かりません。

[EDIT]

しかし、さらに行くことならば、私は次のように書くことをお勧めしたい:

jQuery(document).ready(function() { 
    jQuery('#menu li a').unbind('click').click(function() { 
     var href = jQuery(this).attr('href'); 
     var toLoad = href+' #content'; 
     loadContent(); 
     jQuery('#content').hide('slow', loadContent); 
     jQuery('#load').remove(); 
     jQuery('#main-wrapper').append('<span id="load">LOADING...</span>'); 
     jQuery('#load').fadeIn('normal'); 

     function loadContent() { 
      jQuery('#content').load(toLoad, '', function() { 
       jQuery('#content').show('normal', function() { 
        jQuery('#load').fadeOut('normal'); 
       }); 
      }); 
     } 
    }); 
}); 

あなたがこれを使用している場合はjQuery('#load').remove();を求める理由を私は理解していないが素子。

関連する問題