2

jQuery クリック バインディングは IE8 では発生しません (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 に答える