0

コードの何が問題なのか理解できません。特定のボタンが押されるたびに変更するグローバル変数がいくつかあります。また、以下のページ付けでhtmlコードのチャンクを返すajax呼び出しを実行するカスタム関数もいくつかあります。これは次のように機能します。

    $('#foot #pagination a.page').live('click', function(){
        window.mode = 'partial';        
        window.key = $('input#search').val();           
        window.page = $(this).parent().find('input').val();
        setTimeout('getData();', 0);        
    });

別のページに移動すると、イベントが2倍になり、HTMLが2倍になることがあります。getData();を校正するとき ブラウザコンソールから-動作する必要があるように、すべてが正常に動作します。これを引き起こす原因は何ですか?

4

2 に答える 2

0

この関数は、の後に1回だけ実行する必要がありますdocument.ready。または、次のようにします。

$('#foot').off('click', '#pagination a.page', navigation) // remove event
          .on('click', '#pagination a.page', navigation); // add event

function navigation(e) {
   window.mode = 'partial';        
   window.key = $('input#search').val();           
   window.page = $(e.currentTarget).parent().find('input').val();
   setTimeout('getData();', 0);        
});
于 2012-05-19T10:51:41.357 に答える
0

問題は、jQuery.live()がドキュメントレディのjQueryスタックにデータをプッシュすることでしたが、ajax応答がサーバーから送信され、ドキュメントレディイベントが再度呼び出された後、この場合.live()、同じデータがjQueryスタックに再度プッシュされ、複数のイベント本体が発生します呼び出します。

.die()以前使用.live()していましたが、現在はすべて正常に動作しています。

于 2012-05-20T21:55:09.447 に答える