2014-02-20 4 views
0

мне нужно установить вызываем функцию active() на OnMouseOver области на изображении, я попытался установить onmouseover с помощью JQuery, эту работу во всех браузере, но не в IE7 поэтому, пожалуйста, кто-нибудь предложить мне намек на работу этот код на IE7Mouseover устанавливается JQuery не работает в IE7

$(document).ready(function(){ 

     var i = 1; 
     $("#map area").each(function(){ 
      var Id = $(this).attr('id'); 
      $(this).attr('onmouseover', "active('area"+i+"','"+Id+"',"+i+")"); 
      i++ 
     }); 
    }); 

активный функциональный код следующим образом: - не показано

function active(value,value2,value3) 
    { 


     $("#"+value).css({'display':'block'}); 
     $("#area"+value3+"_link").css({'text-decoration':'underline'}); 
     $('#'+value2).mouseout(function(){$('#'+value).css({'display':'none'});$("#area"+value3+"_link").css({'color':'#707070','text-decoration':'none'});}); 
    } 

и никакой ошибки JS. изменения в анонимное определение функции, как этого

$(document).ready(function(){ 

     var i = 1; 
     $("#map area").each(function(){ 
      var Id = $(this).attr('id'); 
      $(this).attr('onmouseover', function() {...your code here...}); 
      i++; 
// and you missed the ; after i++ 
     }); 
    }); 
+0

Какую версию JQuery вы используете? И что делает 'active()' do? – putvande

+0

Проверьте наличие ошибки js и поделитесь ею с нами. –

+0

@putvande i, используя функцию jquery1.9.1 и ative(), отображающую эффект наведения области на элемент меню нижнего колонтитула, и показывает скрытый контейнер для соответствующей области с другим цветом фона. – Niles

ответ

2

Почему вы используете $(this).attr('onmouseover'

+0

Спасибо .... его правильная работа в IE7 – Niles

0

Try. Единственная причина, я вижу это i

Вы можете просто использовать .index()

$("#map area").on('mouseover', function(){ 
    var i = $("#map area").index(this) + 1; 
    active('area'+ i, $(this).attr('id'), i); 
}) 

Примечание: .index() начинается с 0

0

Попробуйте :)

 $(document).ready(function(){ 
     var i = 1; 
     $("#map area").each(function(){ 
     var Id = $(this).attr('id'); 
     $(this).mouseover(function(){ 
     active('area"+i+"','"+Id+"',"+i+")"); 
     i++; 
          }); 

    }); 
0

Приложить событие, используя следующие функ например addEvent('mouseover', $(this).get(0), <callback>)

function addEvent(evnt, elem, func) { 
if (elem.addEventListener) // W3C DOM 
    elem.addEventListener(evnt,func,false); 
else if (elem.attachEvent) { // IE DOM 
    elem.attachEvent("on"+evnt, func); 
} 
else { // No much to do 
    elem[evnt] = func; 
} 
} 
Смежные вопросы