2013-06-27 84 views
0

我想动态地添加一个功能,在IE7以外的所有浏览器上工作正常的标签。点击事件不工作在jQuery IE7中

<head> 
<script type="text/javascript" src="jquery-1.8.3.js"></script> 
<script type="text/javascript"> 
function show(num){ 
if(num==1){ 
$('#one').removeAttr('onclick') 
$('#two').attr('onclick','show(1)') 
alert(0) 
}} 
</script> 
</head> 
<body> 
<a href="javascript:void(0)" onclick="show(1)" id="one">one</a> 
<a href="javascript:void(0)" id="two">two</a> 
</body> 
</html> 
+0

请添加相关小提琴\ – aBhijit

+3

小提琴也不会在IE 7 :) –

+0

工作@DadoJerry它甚至不会在8我的机器上工作。 9或更高。 Chrome ftw。 – War10ck

回答

5

这不是附加/分离事件处理程序的正确方法。 您可以尝试使用此方法。

$('#one').off('click'); 
$('#two').click(function() { show(1); }); 

.click().on('click')

+0

我不确定'.off('click')'是否会删除inline'onclick'处理程序。 –

+0

@RocketHazmat真的,它很可能不会。这不是一个完整的解决方案,只是一个建议。 –

2

的包装功能由于您使用jQuery的,用它来注册事件处理程序,而不是使用onclick属性

您可以使用.one()事件寄存器,因为你想要请致电事件处理程序而不是使用.on().off()

jQuery(function(){ 
    function handler(num){ 
     alert(num) 
    } 
    $('#one').one('click', function(){ 
     handler(1); 
     $('#two').on('click', function(){ 
      handler(1); 
     }); 
    }) 
}) 
+0

@BradM对不起,它是'handler(num)' –

-3

由于从http://forum.jquery.com/topic/click-not-working-for-ie7-8

采取我有一个死的简单。点击()事件设置与 NEXTLINK的ID的DIV。这在所有“真实”浏览器中都能很好地工作。

$('#nextLink').click(function() { 
     alert("nextLink here"); 
     }); 

     <div id="nextLink">Next</div> 
+2

如果你要复制内容,请有礼貌至少给予适当的归属:http://forum.jquery.com/topic/click-not-working-for- ie7-8 – Bart