2012-03-02 3 views
0

Так вот мой сценарий:JQuery MouseLeave IE не работает

$(document).bind('mouseleave', function(event) {   
      // show popup 
      console.log("you are about to leave the form!"); 
      //Get the A tag 
      var id = $("#dialog"); 

      //Get the screen height and width 
      var maskHeight = $(document).height(); 
      var maskWidth = $(window).width(); 

      //Set heigth and width to mask to fill up the whole screen 
      $('#mask').css({'width':maskWidth,'height':maskHeight}); 

      //transition effect  
      $('#mask').fadeIn(250); 
      $('#mask').fadeTo("slow",0.8); 

      //Get the window height and width 
      var winH = $(window).height(); 
      var winW = $(window).width(); 

      //Set the popup window to center 
      $(id).css('top', winH/2-$(id).height()/2); 
      $(id).css('left', winW/2-$(id).width()/2); 

      //transition effect 
      $(id).fadeIn(500); 
    }); 

Этот код прекрасно работает на всех браузерах, но IE. Единственный момент, когда кажется, что это работает, - это когда я активировал «инструменты разработчика» ... Фактический связанный триггер «mouseleave» не работает.

Любые идеи?


Похоже, что IE не любит, чтобы вызов «console.log» находился в методе. Как только я удалил эту ссылку, все сработало.

Может кто-нибудь просветить меня, почему это может быть?

+0

Кев, я ценю редактирование, но это ответ ... 'console.log' является проблемой в IE. – dcolumbus

ответ

0

IE поддерживает только console.log(), когда инструменты разработчика включены. Я думаю, что это просто дизайнерское решение, которое они сделали. Вы можете попытаться преодолеть это в вашем коде, определив собственную функцию протоколирования:

var log = function(s) { 
    try { 
    console.log(s); 
    } catch (e) { 
    alert(s); // If you want to see annoying popups. 
    }   // If not, just leave this empty. 
} 
Смежные вопросы