【问题标题】:click event not working in IE7 in jquery点击事件在jquery的IE7中不起作用
【发布时间】:2013-06-27 13:38:51
【问题描述】:

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

【问题讨论】:

  • 请添加相关小提琴\
  • Fiddle 在 IE 7 中也无法使用 :)
  • @DadoJerry 它甚至无法在我的机器上运行 8。 9 或更高。铬英尺。
  • $('#two').attr('onclick','show(1)') 不是附加事件处理程序的方式。
  • @amit 它可能有效,但它不是正确的方法。 jQuery 为这个目的提供了处理函数。查看下面的一些答案,了解如何在这种情况下应用 jQuery 处理程序。

标签: jquery


【解决方案1】:

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

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

.click().on('click') 的包装函数

【讨论】:

  • 我不确定.off('click') 是否会删除内联onclick 处理程序。
  • @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);
        });
    })
})

【讨论】:

  • @BradM 抱歉是handler(num)
【解决方案3】:

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

我为 id 的 div 设置了一个非常简单的 .click() 事件 下一个链接。这在所有“真正的”浏览器中都能完美运行。

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

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-05-14
  • 1970-01-01
  • 2016-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多