2013-06-27 26 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