一起使用jQuery和标准JavaScript

时间:2011-07-04 15:07:33

标签: javascript jquery javascript-events

我有这行JavaScript / jQuery,我试图将一个元素附加到DOM然后附加一个eventlistener

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

我知道追加部分完美无缺,但添加一个事件监听器让我感到悲伤。

是否可以/建议像这样一起使用jQuery和普通的JavaScript? 或者jQuery中有什么东西可以更好地工作。 (jQuery非常新,请耐心等待。)

5 个答案:

答案 0 :(得分:2)

如果要使用本机方法,则需要针对DOM元素而不是jQuery对象调用它们

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

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

如果你想使用jQuery,那么你需要将DOM元素包装在jQuery对象中。

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

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

答案 1 :(得分:0)

你可以这样做:

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

这是纯粹的jquery

答案 2 :(得分:0)

我认为您希望将事件侦听器添加到克隆节点 - 而不是prev() .faq_answer

如果您要导入jQuery,为什么不使用.click()方法而不是混合?它更简单! :)

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

答案 3 :(得分:0)

是的,可以“一起”使用它们,因为jQuery JavaScript。但是在这种情况下,如果您使用的是库,则没有理由直接绑定事件处理程序。它已经知道如何管理事件处理程序,并且除非你真的知道你正在做什么,否则它可能不是一个好主意。

答案 4 :(得分:0)

我发现这样的问题很奇怪,因为jQuery是JavaScript。

基于这种混合,使用jQuery代码的纯JavaScript代码很好。

但如果有更简单的方法在jQuery中做你想做的事情,那么我会说只用jQuery。