указатель мыши установленный jquery не работает в ie7

0

Мне нужно установить вызов функции active() на области onmouseover на изображении, я попытался установить onmouseover с помощью jquery, эта работа onmouseover во всех браузерах, но не в IE7, поэтому, пожалуйста, пусть кто-нибудь подскажет мне, как работать с этим кодом на 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.

  • 0
    Какую версию jQuery вы используете? А что делает active() ?
  • 0
    Проверьте на любую ошибку js и поделитесь ею с нами.
Показать ещё 1 комментарий
Теги:

4 ответа

2
Лучший ответ

Почему вы используете $(this).attr('onmouseover'. Единственная причина, по которой я вижу, - это i

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

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

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

  • 0
    Спасибо .... это работает должным образом в IE7
0

Попробуйте перейти на анонимное определение функции

$(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

Пытаться:)

        $(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;
}
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню