Jquery IE8 / 9/10 Lier pour ne pas fonctionner

Face à un problème avec IE et jquery. Le code fonctionne dans tous les autres navigateurs mais se casse lorsqu'il est utilisé dans IE. Une mise en œuvre relativement simple. Mais je suis javascript novice.

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 {} } 

Le console.log n'est jamais appelé mais le document. Il semble déjà fonctionner dans IE

Le type de doctype

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

Si c'est faux, je ne peux pas le changer. Il s'agit d'une extension de l'application MicroStrategy BI.

Selon votre version jQuery, votre problème est probablement le .bind() qui devrait être effectué avec .on() comme celui-ci

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?? }); }); 

Le problème avec ce javascript est qu'il tentait de modifier une page qui est en cours de construction avec un cadre ajax. C'est l'application MicroStrategy BI. Si je pose un point de rupture après le document, il n'y a pas de contenu sur la page.

Les solutions sur cette page m'ont aidé à arriver ici qui devrait couvrir si / 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(); }); }