2012-06-08 2 views
0

Я пишу расширение для FF, и эта часть кода не работает в более ранних версиях 6.0-8.0. Но на версиях 12.0-13.0 все отлично работает. Какова причина?События FF mouseleave/mouseenter

 for(var i = 0; i < doc.getElementsByClassName('repInfo').length; i++) 
     { 
      doc.getElementsByClassName('repInfo')[i].getElementsByTagName('a')[0].style.visibility = "hidden"; 
      doc.getElementsByClassName('repInfo')[i].getElementsByTagName('a')[1].style.visibility = "hidden"; 

      doc.getElementsByClassName('repInfo')[i].addEventListener('mouseleave', 
       function(e) { 
        e.target.getElementsByTagName('a')[0].style.visibility = "hidden"; 
        e.target.getElementsByTagName('a')[1].style.visibility = "hidden"; 
       }, false); 
      doc.getElementsByClassName('repInfo')[i].addEventListener('mouseenter', 
       function(e) { 
        e.target.getElementsByTagName('a')[0].style.visibility = "visible"; 
        e.target.getElementsByTagName('a')[1].style.visibility = "visible"; 
       }, false); 
     } 
+1

придираться: 'doc.getElementsByClassName ('repInfo') [я] ...' использовать снова и снова плохо сказывается на производительности. Установите его в переменную и работайте оттуда. – epascarello

ответ

2

mouseenter и поддержка mouseleave была добавлена ​​с Firefox 10.

+0

возможно есть похожие? – mmatviyiv

+1

Да, вы должны написать функцию, которая использует mouseover и mouseout и определяет, находится ли элемент в родительском элементе. – epascarello

+0

Большое спасибо – mmatviyiv

Смежные вопросы