jquery IE8 / 9/10绑定点击不起作用

时间:2013-12-12 22:24:28

标签: javascript jquery internet-explorer internet-explorer-8

面对IE和jquery的问题。该代码适用于所有其他浏览器,但在IE中使用时会中断。相当简单的实施。但我是javascript新手。

console.log('hi ie');

jQuery(document).ready(function () {
    setTimeout(function () {
        jQuery(".controlApply").on("click", function (event) {
            pollVisibility();
            console.log('after poll');
        });
    }, 1000);
});
//This method checks is a specific div is shown. Dirty way to check if a report is being processed
function pollVisibility() {
    console.log('poll');
    if (microstrategy.bones.rwb_viewer.objectID == '7647F4F611E2B39B923E0080EF058C78') {
        if (!jQuery('#divWaitBox').attr('style')) {
            console.log('divWaitBox');
            //wait did not appear
            microstrategy.getViewerBone().commands.exec('refresh');
        } else if (jQuery('#divWaitBox').attr('style').indexOf('hidden') != -1) {
            console.log('hidden');
            microstrategy.getViewerBone().commands.exec('refresh');
        } else {
            console.log('other');
            setTimeout(pollVisibility, 800);
        }
    } else {}
}

从不调用console.log但是document.ready似乎在IE中工作

doctype

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">

如果错了,我无法改变它。这是MicroStrategy BI应用程序的扩展。

3 个答案:

答案 0 :(得分:0)

根据您的jQuery版本,您的问题很可能是应.bind()执行的.on()

<强> HTML

<div class="class" style="height:40px; width:40px; background-color:#ff0000;"></div>

<强>的jQuery

$(document).ready(function () {
    $(".class").on("click", function (event) {
        console.log('We clicked!');
        poll(); // <-- wtf does this do exactly??
    });
});

答案 1 :(得分:0)

这个javascript的问题在于它试图改变用一些ajax框架构建的页面。它是MicroStrategy BI应用程序。如果我在文档准备就绪后放置了一个断点,那么页面上就没有内容呈现。

此页面上的解决方案帮助我了解了/ if / ff / chrome

jQuery( document ).ready(function() {
    setTimeout(test, 1000);
      jQuery(".controlApply").on("click", function (event) {
          pollVisibility();
      });
});



function test(){
       jQuery('.mstrTransform').on('click', '.controlApply', function(){
           pollVisibility();
       });
}

答案 2 :(得分:0)

我刚刚在IE 11中遇到了一个同样的问题,这是我梦a以求的事情。我试图将jQuery append()信息添加到div元素中。在运行控制台时,该动作会间歇性地起作用。如果关闭控制台,则什么也没发生,就好像脚本被完全忽略了一样。这包括警报声明。

通过注释console.log语句,IE 11的行为符合预期(仍然感觉不正确)。我在MS Edge和Chrome中使用console.logs运行了相同的脚本,一切都按预期运行。我了解到console.log是罪魁祸首。在我们的代码之间这是很常见的事情,我正在使用IE 11,但问题仍然存在。 :(