0

我想在标签上动态添加一个功能,该功能在除 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>
4

3 回答 3

5

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

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

.click()是一个包装函数.on('click')

于 2013-06-27T13:40:52.617 回答
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);
        });
    })
})
于 2013-06-27T13:42:10.883 回答
-3

取自http://forum.jquery.com/topic/click-not-working-for-ie7-8

我有一个非常简单的 .click() 事件设置,用于 id 为 nextLink 的 div。这在所有“真实”浏览器中都能完美运行。

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

      <div id="nextLink">Next</div>
于 2013-06-27T13:44:44.087 回答