Nilesh Nartam
Nilesh Nartam

Reputation: 296

mouseover set by jquery not working in ie7

i need to set the call the function active() on onmouseover area on image, i tried to set onmouseover using jquery , this work in all browser but not in IE7 so please anybody suggest me hint to work this code on 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++
        });
    });

the active function code as follow:-

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'});});
    }

and no js error shown.

Upvotes: 0

Views: 91

Answers (4)

Satpal
Satpal

Reputation: 133403

Why are you using $(this).attr('onmouseover'. Only reason I am seeing is i

You can simply use .index()

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

Note: .index() starts with 0

Upvotes: 2

rt2800
rt2800

Reputation: 3045

Attach event using following func e.g. 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;
}
}

Upvotes: 0

Arunkumar Vasudevan
Arunkumar Vasudevan

Reputation: 5330

Try:)

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

    });

Upvotes: 0

DhruvJoshi
DhruvJoshi

Reputation: 17126

Try changing to anonymous function definition like this

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

Upvotes: 0

Related Questions