我想在标签上动态添加一个函数,该标签在除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 :(得分:5)
这不是附加/分离事件处理程序的正确方法。 您可以尝试使用此方法。
$('#one').off('click');
$('#two').click(function() { show(1); });
.click()
是.on('click')
答案 1 :(得分: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);
});
})
})
答案 2 :(得分:-3)
取自http://forum.jquery.com/topic/click-not-working-for-ie7-8
我有一个死的简单的.click()事件设置为id为的div NEXTLINK。这在所有“真正的”浏览器中都能很好地工作。
$('#nextLink').click(function () { alert("nextLink here"); }); <div id="nextLink">Next</div>