同时使用jQuery和标准JavaScript

tpxzln5u  于 2022-12-12  发布在  jQuery
关注(0)|答案(5)|浏览(115)

我尝试使用这行JavaScript / jQuery向DOM追加一个元素,然后附加一个eventlistener

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

我知道附加部分工作得很完美,但是添加一个事件侦听器让我很伤心。
像这样一起使用jQuery和普通JavaScript是否可行/可取?或者jQuery中有什么东西可以更好地工作。(对jQuery来说是一个新手,请耐心等待)。

nxowjjhe

nxowjjhe1#

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

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

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

如果要使用jQuery,则需要将DOM元素 Package 在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 );
tf7tbtn2

tf7tbtn22#

你可以这样做:

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

它是纯jquery

pbossiut

pbossiut3#

我认为您希望将事件监听器添加到克隆的节点,而不是添加到.faq_answerprev()
如果您要导入jQuery,为什么不使用.click()方法而不是混合使用呢?这样更简单!:)

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

jmo0nnb34#

是的,可以“一起”使用它们,因为jQueryJavaScript。但是,在这种情况下,如果你正在使用这个库,就没有理由像那样直接绑定事件处理程序。它已经知道如何管理事件处理程序,在它的控制之外做可能不是一个好主意,除非你 * 真的 * 知道你在做什么。

sq1bmfud

sq1bmfud5#

我觉得这样的问题很奇怪,因为jQuery是JavaScript。
在此基础上,将纯JavaScript代码与jQuery代码混合是可以的。
但是如果有一种更简单的方法可以在jQuery中完成您想要的任务,那么我会说只使用jQuery。

相关问题