Javascript jQuery事件处理程序在IE中有时不触发

Javascript jQuery事件处理程序在IE中有时不触发,javascript,jquery,internet-explorer,twitter-bootstrap,Javascript,Jquery,Internet Explorer,Twitter Bootstrap,我的IE有问题。在我的应用程序中,我有一个用户可以显示的对话框。该对话框是使用来自AJAX调用的数据构建的。然后为按钮注册一个一次性事件处理程序。在FF、Chrome和Safari中,我没有问题。此时将显示该对话框,并且该按钮起作用。这已经奏效很长时间了 在IE中,会显示对话框,但有时不会触发事件处理程序。单击按钮没有效果。这种情况并不总是发生。到目前为止,它似乎发生在你打开IE后第一次查看页面时。关闭对话框并重新打开有时会修复它。重新加载页面有时会修复它。一旦修复,无论页面重新加载如何,它似乎

我的IE有问题。在我的应用程序中,我有一个用户可以显示的对话框。该对话框是使用来自AJAX调用的数据构建的。然后为按钮注册一个一次性事件处理程序。在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(),但同样的问题也出现了。在这一点上,我已经尝试了大约两周来解决这个问题。任何帮助都将不胜感激


该按钮应该在注册事件处理程序时存在,因为它是在两行之前添加到DOM的。(即使事件处理程序失败,也会显示带有按钮的对话框,因此注册事件处理程序之前的两行和事件处理程序之后的一行都会工作。

可能会在文档上绑定事件,以确保它不是由不存在的元素绑定问题引起的

$(document).one('click', '#btn_add_collegues', function () {
    // ...
});

问题是我在事件处理程序中留下了一个console.log调用。删除console.log调用修复了这个问题。很遗憾,IE没有给你任何它无法处理调用的指示。它只是静静地死去。调试是一件痛苦的事,因为它在你打开开发工具时就可以工作。

尝试移动按钮。one()绑定到ajax调用之前的某个地方,请发布整个代码什么版本的IE?您也可以发布您的标记吗?我猜您正在尝试在ajax调用完成之前设置事件处理程序,因此对象还不在DOM中。但是,您还没有向我们展示足够的代码来确定。IE9和10.Mo在ajax调用之前将button.one()绑定到将不起作用,因为在ajax调用之前该按钮不存在。上面的第一行在ajax调用开始之前。其余的行在ajax成功回调中。这没有效果。仍然存在相同的问题。