2013-04-19 10 views
39

に追加されたjQueryの要素へのアクセスを取得する:私はそれを追加した直後、私は私がちょうど作っ要素にアクセスする必要が私は単にのようなDOM上にある要素を追加していますちょうどDOM

$("#div_element").append('<a href="#">test</a>'); 

それにクリック機能をバインドするために、私は試しました:しかし、上記は機能しませんでした。私はその要素を一意に識別することができましたが、それを追加した直後に要素を取得する方法がある場合には、少しうまくいくように思えます。

+0

あなたはそれを追加する直前にクリックハンドラを添付してください。 – Blazemonger

+1

[ノードが追加された直後にノードへの参照を取得する方法は?](http://stackoverflow.com/questions/1162677/how-can-i-get-a-reference-to-a-ノード直後に追加された)と[追加要素の後のアクセス要素](http://stackoverflow.com/q/5937019/218196)を参照してください。 –

答えて

67

を次のようにあなたがこれを行うことができ、それを使用し、そのelementにアイデンティティを追加:文字列またはjQueryの要素:

var el = $('<a href="#">test</a>'); 

$("#div_element").append(el); 

el.click(function(){alert("test")}); 

// or preferrably: 
el.on('click', function(){alert("test")}); 

アペンド機能は、引数の2つのタイプを受け入れます。 文字列が渡された場合、内部的にjQuery要素が作成され、親要素に追加されます。

この場合、jQuery要素へのアクセスが必要なので、イベントハンドラをアタッチすることができます。そのため、文字列を渡してjQueryに要素を作成させる代わりに、まず要素を作成してからappend-functionに渡す必要があります。

これを実行した後も、ハンドラをアタッチできるようにjQuery要素にアクセスできます。

+0

'.on'がこれを行う最善の方法だと思っていますが、あなたは実際に質問に答えました!よくやった! – romo

+0

ありがとう、とてもうまくいきます! –

+0

それで、追加する前に文字列の周りに$()を置く答えはありますか?ここでの推論と話は何ですか? – sheriffderek

0

$("#div_element").append('<a id="tester" href="#">test</a>'); 


$('#tester').on('click', function(event) { 
console.log('tester clicked'); 
}); 
0

なぜあなたはそれを追加する前に、新しい要素への参照を保存しない:

var newElement = $('<a href="#">test</a>'); 
$("#div_element").append(newElement); 
newElement.click(function(){alert("test")}); 
0

を最後の要素は、あなたがそれを作成するときは、要素にイベントを添付することができ、新たな要素

$('a:last','#div_element').on('click',function(){ 
    // do something 
}); 
0

だろう -

var ele =$("<a href='#'>Link</a>"); 

ele.on("click",function(){ 
    alert("clicked"); 
}); 


$("#div_element").append(ele); 
0

追加する前にアンカーにクリックハンドラーを接続するだけです。

$("#div_element").append($('<a href="#">test</a>').click(function(){alert("test")})); 
5
var $a = $('<a />', {href:"#"}) 
    .text("test") 
    .on('click', function(e) { 
    alert('Hello') 
    }) 
    .appendTo('#div_element'); 

http://jsfiddle.net/33jX4/

関連する問題