在IE8中不会触发jQuery Click绑定

时间:2012-12-19 22:01:04

标签: javascript jquery internet-explorer-8

在IE8中永远不会触发jQuery点击绑定(在IE9,Chrome等中运行)如何在IE8中触发点击事件,为什么它不在当前?

注意:我已尝试将href更改为'#',但这也无效。

$('<a/>', {
    id: 'anchor-id',
    href: 'javascript:void(0);',
    'class': 'button-next',
    html: 'HTML'
}).click(function() {
     alert('clicked');
}).appendTo($('#append'));​

版本:1.7.2

4 个答案:

答案 0 :(得分:4)

您是否尝试过使用.on()

.on()将为与您的选择器匹配的所有当前和未来元素创建一个事件处理程序。在下面的语句中,click事件将针对类button-next的所有元素进行处理,无论它们何时添加到DOM中。

$(document).on('click', '.button-next', function(e) 
{ 
  //do something
});

答案 1 :(得分:3)

尝试这样的事情

$(document).on('click', '.button-next', function() {
    // code here
});

答案 2 :(得分:0)

我能够使用以下内容在IE8中使用它:

<div id="append"></div>
<script>
    var aLink = $('<a/>', { id: 'anchor-id', href: '#',html : 'click me'}).on('click', function () {
         alert('clicked');
    });
    $('#append').append(aLink);


</script>

另外,请确保您没有任何console.log()。 IE非常不喜欢它们。

答案 3 :(得分:0)

您是否停止了事件传播?

通常使用链接,您必须执行以下操作:

<a href="#">HTML</a>

这个脚本可行:

jQuery('#someLink').bind('click', function(e){  
  e.preventDefault();  
  //.. do something  
});

注意:你的javascript:void(); 应该已经涵盖了这一点,但只是检查。

如果它不是“真实”链接,则不会强制使用A元素,因为您可以使用创建对象的相同jQuery来模拟悬停事件:

jQuery("<span>", {  
  text: "html",  
  id: "anchor-id",  
  "class": "button-next",  
  click: function() { /* do something */ },  
  mouseover: function() { /* hover over */ },  
  mouseout: function() { /* hover out */ }
}).appendTo(jQuery('#append'));