我有这行JavaScript / jQuery,我试图将一个元素附加到DOM然后附加一个eventlistener
。
$('.faq_answer').prev().append(finalRender.cloneNode(true)).addEventListener("click", function () {toggle(this)}, false);
我知道追加部分完美无缺,但添加一个事件监听器让我感到悲伤。
是否可以/建议像这样一起使用jQuery和普通的JavaScript? 或者jQuery中有什么东西可以更好地工作。 (jQuery非常新,请耐心等待。)
答案 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。