2013-04-07 80 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