2013-11-20 3 views
1

У меня проблема, которая возникает только в IE 8 и ранее. Я не сталкиваюсь с какими-либо проблемами в других браузерах.Ошибки скрипта в IE 8 on Hover

Я использую плагин maphighlight для активации определенных областей карты. Это происходит, когда из списка ниже выбирается либо область карты, либо название области. Предполагается, что боковая панель появляется и исчезает при наведении курсора на область карты. Кажется, что все работает нормально, когда он парит, но когда я нахожусь, я получаю сообщения об ошибках сценария. Unknown runtime error, Line: 162 Char: 4 в jquery.maphilight.js. Пространство карты постоянно горит, пока не обновится страница.

Любые советы приветствуются, так как я приближаюсь к концу своего опыта по этому вопросу.

My Site

Карта:

$(function() { 
    $('.map').maphilight(); 

     $('#np1-link').mouseover(function(e) { 
      $('#np1').mouseover(); 
     }).mouseout(function(e) { 
      $('#np1').mouseout(); 
     }).click(function(e) { e.preventDefault(); }); 
    });  

Hover За:

function hovIn() { 
    var areaID = $(this).attr('id'); 
    if (areaID == 'np1') { 
     $('#sidebar_newpavilion').show(); 
    } 

Hover Out:

function hovOut() { 
    $('#sidebar_newpavilion').hide(); 
} 

$('map area').hover(hovIn, hovOut); 

UPDATE:

Здесь говорится, что ошибка времени выполнения происходит, когда холст должен быть очищен. Любая причина, почему это не будет работать в IE8?

 clear_canvas = function(canvas) { 
     // jquery1.8 + ie7 
     var $html = $("<div>" + canvas.innerHTML + "</div>"); 
     $html.children('[name=highlighted]').remove(); 
     canvas.innerHTML = $html.html(); 
    }; 
} 
+0

Возможный дубликат http://stackoverflow.com/questions/12787373/jquery-mouseover-doesnt-work-ie – gat

+0

Я просто попытался несколько шагов, предложенных в этой теме не повезло, и с помощью CSS это не вариант. – usefulbattery

+0

У IE, похоже, есть проблемы с элементами, которые еще не видны. Вам понадобится способ обойти это. Вы можете добавить свойства css, используя javascript. Так поступают и библиотеки. – gat

ответ

0

У меня такая же проблема.

Это простое решение, конвертируя двойную кавычку в одиночную кавычку.

clear_canvas = function(canvas) { 
     // jquery1.8 + ie7 
     var $html = $("<div>" + canvas.innerHTML + "</div>"); 
     $html.children('[name=highlighted]').remove(); 
     canvas.innerHTML = $html.html().replace("\"","'"); 
    };