2011-07-04 25 views
1

DOMに要素を追加してからeventlistenerを追加するために使用しているJavaScript/jQueryのこの行があります。jQueryと標準のJavaScriptを併用する

$('.faq_answer').prev().append(finalRender.cloneNode(true)).addEventListener("click", function() {toggle(this)}, false); 

追加する部分は完全に機能しますが、イベントリスナーを追加すると私に悲しみが与えられます。

このようにjQueryと通常のJavaScriptを併用することは可能ですか? jQueryにうまくいくものがありますか? (jQueryにはとても新しいので、私と一緒にいてください)。

+0

jQueryとJavascriptは互換性がありません。 jQueryはそれを取ることができません...(私は冗談です) – jAndy

+0

動的要素を作成する場合は、http://api.jquery.com/delegate/を使用してイベントリスナーを適用してください – John

+0

今すぐ@jAndy。 – Pointy

答えて

0

あなたはこのような何か行うことができます:私はあなたがクローン化されたノードにイベントリスナーを追加したいとしていると思います

0

純粋jqueryのです

$('.faq_answer').prev().append(finalRender.cloneNode(true)).click(function() {toggle(this)}); 

- ない.faq_answerprev()にします。

jQueryをインポートする場合は、混合する代わりに.click()メソッドを使用してください。それはより簡単です! :)あなたはjQueryのを使用したい場合は

$('.faq_answer').prev().append(finalRender.cloneNode(true).click(function(){ 
    toggle(this) 
})); 
+2

DOM要素に対してjQueryメソッドを呼び出そうとしています。それは動作しません。 – user113716

+0

'$(finalRender.cloneNode(true))のようなjqueryの良さでそれをラップするとどうなりますか?(... etc'? – simonlchilds

2

あなたはネイティブメソッドを使用する場合は、あなたはDOM要素に対してそれらを呼び出す必要はなく、jQueryの

var clone = finalRender.cloneNode(true); 
clone.addEventListener("click", function() {toggle(this)}, false); 

$('.faq_answer') 
     .prev() 
     .append(clone); 

オブジェクト、そしてあなたがラップする必要がありますjQueryオブジェクト内のDOM要素

// Drop your DOM element----v----into a jQuery object 
var clone = $(finalRender.cloneNode(true)).bind("click", function(){ 
    toggle(this); 
}); 

$('.faq_answer') 
     .prev() 
     .append(clone); 
0

jQueryのはJavaScriptですのではい、それは "一緒に" それらを使用することが可能です。しかし、この場合は、ライブラリを使用している場合にイベントハンドラを直接バインドする必要はありません。イベントハンドラを管理する方法はすでにわかっていて、コントロールの外で実行するのは良い考えではありません。本当には何をしているのか分かりません。

0

jQueryがJavaScriptなので、これは奇妙なものです。

jQueryコードを使用した単純なJavaScriptであるコードは、この混合に基づいて正常です。

しかし、jQueryで必要なことを行う簡単な方法がある場合は、jQueryだけを使用すると言います。

関連する問題