0

IE に問題があります。私のアプリには、ユーザーが表示できるダイアログがあります。ダイアログは、AJAX 呼び出しからのデータを使用して作成されます。次に、ボタンの 1 回限りのイベント ハンドラーを登録します。FF、Chrome、Safariでは問題ありません。ダイアログが表示され、ボタンが機能します。これは長い間機能しています。

IE では、ダイアログは表示されますが、イベント ハンドラーが起動しない場合があります。ボタンをクリックしても何も起こりません。これは常に起こるわけではありません。これまでのところ、IE を開いて最初にページを表示したときに発生するようです。ダイアログを閉じて再度開くと、修正されることがあります。ページをリロードすると修正される場合があります。修正されると、ページのリロードに関係なく、再び失敗することはないようです。問題を再発させるには、IE を終了する必要があります。開発者ツールを開くと問題がなくなるため、開発者ツールを使用できませんでした。

$('#btn_school_choices').button('loading');

$.ajax({
  type: 'GET',
  url: 'ajax/optimized_colleges.php',
  dataType: 'json',
  success: function(data, status, xhr) { 
    // Some code to prepare the data returned

    // Build the dialog using the data and add to DOM
    $('#modal_opt_in').html(ich.dialog_optimize_college_selection(optinData));

    $('#btn_school_choices').button('reset');

    // Add Event Handler to Button in Dialog
    $('#btn_add_colleges').one('click', function() { ... }

    // Show the Dialog
    $('#modal_opt_in').modal({backdrop: 'static', show: true});

  error: function(xhr) { ... }
});

on() と off() を使用してみましたが、同じ問題が発生します。この時点で、私は約 2 週間にわたってこれを修正しようとしてきました。どんな助けでも大歓迎です。

ボタンは 2 行前に DOM に追加されるため、イベント ハンドラーの登録時に存在する必要があります。(イベントハンドラーが失敗してもダイアログはボタンで表示されるので、イベントハンドラーを登録する前の2行とイベントハンドラーの後の行が機能します。

4

2 に答える 2