2

在 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

4 回答 4

4

你试过使用.on()吗?

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

$(document).on('click', '.button-next', function(e) 
{ 
  //do something
});
于 2012-12-19T22:02:43.937 回答
3

尝试这样的事情

$(document).on('click', '.button-next', function() {
    // code here
});
于 2012-12-19T22:03:13.813 回答
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 不太喜欢它们。

于 2012-12-19T22:08:11.103 回答
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')); 
于 2012-12-19T22:26:43.237 回答