4

このように作成された要素に対してクリックイベントを機能させることができません。

http://jsfiddle.net/iambriansreed/PEZXa/

jQuery

$('<a href="#">a</a>', {
  click: function(){
    alert('a clicked');
  }
}).appendTo("div");

$('<span>span</span>', {
  click: function(){
    alert('span clicked');
  }
}).appendTo("div");

onclickこの特定のメソッドが機能する理由と機能しない理由を知りたい要素にイベントを追加する50の異なる方法を見せないでください。

ドキュメントから:http: //api.jquery.com/jQuery/#jQuery2

4

4 に答える 4

6
$('<a />', {
    href: '#',
    text: 'a',
  'click': function(){
    alert('a clicked');
  }
}).appendTo("div");

$('<span />', {
    text: 'span',
  'click': function(){
    alert('span clicked');
  }
}).appendTo("div");

http://jsfiddle.net/PEZXa/56/

ドキュメントから

html-単一のスタンドアロンHTML要素を定義する文字列(例:<div/>または<div></ div>)。

于 2012-08-29T21:57:45.813 に答える
5

このように作成された要素にテキストノードまたは属性が含まれている場合、jQueryはそれを好まないようです。本質的に、提供するHTMLコードは、単一の(場合によっては自己閉鎖型の)タグである必要があります。

これはおそらく、属性がHTMLとオブジェクトの間で混合されるのではなく、オブジェクトパラメーター内で定義されることを期待する構文を使用しているためです。

とにかく、このコードは私のために働きます:

$('<a /> ', {
    href: '#',
    text: 'a',
    click: function() {
        alert('a clicked');
    }
}).appendTo("div");

$('<span />', {
    text: 'span',
    click: function() {
        alert('span clicked');
    }
}).appendTo("div");​

デモ: http: //jsfiddle.net/PEZXa/60/

于 2012-08-29T21:58:07.840 に答える
4

これは機能するはずです:

$('<a/>', {
    href: "#",
    text: 'a',
    click: function(){
        alert('a clicked');
    }
}).appendTo("div");

フィドル

于 2012-08-29T21:57:33.727 に答える
3

jQuery(html, props)htmlが他の属性や子要素を持たない単一のベアタグである場合にのみ機能します。

于 2012-08-29T21:59:00.943 に答える