2014-02-20 123 views
0

不工作,我需要設置呼叫上圖像的onmouseover區域的功能active(),我試圖設置onmouseover使用jQuery,這項工作在所有的瀏覽器,但不是在IE7所以請任何人建議我提示來解決這個代碼在IE7鼠標懸停的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錯誤。

+0

? 'active()'是做什麼的? – putvande

+0

檢查是否有任何js錯誤,並與我們分享。 –

+0

@putvande我使用jquery1.9.1和ative()函數顯示區域懸停在頁腳菜單項上的效果,並顯示與另一種背景顏色對應區域的隱藏容器。 – Niles

回答

2

。唯一的原因,我看到的是i

您可以簡單地使用.index()

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

注:與0

+0

謝謝....它在IE7中正常工作 – Niles

0

嘗試你爲什麼要使用$(this).attr('onmouseover'更改爲匿名函數定義這樣

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

.index()開始嘗試:)

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

連接事件中使用以下FUNC例如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; 
} 
} 
jQuery的您正在使用什麼版本