2011-08-17 11 views
0

以下のコードはChromeでうまく動作し、IE7では断続的に動作しますが、IE8では動作しませんでした...元々、チェックボックスを無効にしたり有効にしていなかったのですが、IEデータが正しく更新されないことに気づいたので、ユーザーが速すぎてクリックし続けると、クエリが成功するとすべてのチェックボックスを無効にしてから、再度有効にしてみることにしました。それは、その行動が奇妙でランダムであることが明らかになったときです。IEのチェックボックスjqueryのクリックイベントがランダムに動作するようですか?

編集は、私はちょうどIEで私のキャッシュをクリアし、ページを再読み込み。私は各箱を一度首尾よく点検し、チェックを外すことができた。それぞれのアクションが各ボックスに適用されると、それは機能しなくなりました。これはキャッシングの問題ですか?

+0

正確にはランダムに起こっているのは何ですか?チャールズのようなプロキシを実行して、サーバーが有効な応答を返していることを確認できますか? –

+0

でも、チェックボックスを無効にすることさえしないので、クリックイベント自体と関係しているようです。 –

+0

は、追加の情報でOPを更新しました –

答えて

0

これは実際にキャッシングの問題でした。私は各AJAX呼び出しにタイムスタンプを含めて、期待どおりに動作するようになりました。

$('input[type=checkbox]').live('click', function() { 
     //disable all checkboxes until it's done saving 
     $('input[type=checkbox]').attr('disabled', true); 
     if ($('input[id=' + $(this).attr('id') + ']:checked').length) { 
      //do checked stuff including ajax call 
      $.ajax({ 
       url: 'EditService.svc/updatedatachecked', 
       type: 'GET', 
       data: { "code": code, "timestamp": timestamp }, 
       dataType: 'json', 
       success: function() { 
        //reenable all checkboxes 
        $('input[type=checkbox]').removeAttr('disabled'); 
       }, 
       error: function (a, b, c) { 
        $('.EditStatus').html("Database Error!"); 
       } 
     } else { 
      //do unchecked stuff including ajax call 
      $.ajax({ 
       url: 'EditService.svc/updatedataUNchecked', 
       type: 'GET', 
       data: { "code": code, "timestamp": timestamp }, 
       dataType: 'json', 
       success: function() { 
        //reenable all checkboxes 
        $('input[type=checkbox]').removeAttr('disabled'); 
       }, 
       error: function (a, b, c) { 
        $('.EditStatus').html("Database Error!"); 
       } 
     } 
    }); 
関連する問題