2013-04-07 74 views
0

不工作有人可以幫助解決這個:jQuery的點擊()在IE7和IE8

$('#cont2, #cont3').hide(); 
$('li a').click(function(){ 
    var idx= $(this).attr('id').substr(-1); 
    $('#cont1, #cont2, #cont3').hide(); 
    $('#cont'+idx).show(); 
    return false; 
}); 

這不是在IE7和IE8工作。爲什麼?

HTML

<ul> 
     <li class="linktab"><a href="#" id="link1">Link1</a></li> 
     <li class="linktab"><a href="#" id="link2">Link2</a></li> 
     <li class="linktab"><a href="#" id="link3">Link3</a></li> 
</ul> 

<div id="cont1">content 1</div> 
<div id="cont2">content 2</div> 
<div id="cont3">content 3</div> 
+2

哪裏是HTML? – Sparky 2013-04-07 16:53:59

+0

確定一個時刻,請 – AndrewS 2013-04-07 16:54:19

+0

你用什麼版本的jQuery(從活新的被刪除)?發生了什麼或者沒有發生什麼? – 2013-04-07 16:54:27

回答

4

因爲老IE的substr實施does not support a negative index as the argument。有一個簡易替換在MDN頁面,或者你可以簡單地做

var id = $(this).attr('id'); 
var idx= id.substr(id.length - 2); 
+0

小的變化的:var = IDX id.substr(id.length - 1); – AndrewS 2013-04-07 16:58:40

+0

感謝你的方法有效! – AndrewS 2013-04-07 16:58:57