我有这一行:
$('.faq_answer').prev().append(finalRender.cloneNode(true)).click(function () {toggle(this)});
我需要将this关键字替换为对当前正在操作的$('。faq_answer。')中的节点的引用。
我已经检查了Jquery文档,但似乎并没有涵盖这种情况。
答案 0 :(得分:0)
你可以这样做:
click(function (event) {
//event.target is the element that has been clicked and you could use this instead of click
});
如果你想要一个对选择器的引用(我认为你没想要,所以我删除了我的答案),你可以简单地这样做:
var faq = $('.faq_answer')
答案 1 :(得分:0)
this
都限定为该函数。因此,您应首先获得.fag_answer
的引用,然后才能使用它。
var faq = $('.faq_answer');
faq.prev().append(finalRender.clonNode(true)).click(function(){toggle(faq);});
答案 2 :(得分:0)
如上面的Nicola所述,您可以创建对选择器的引用,然后在单击处理程序中使用它:
var faq = $('.faq_answer');
faq.prev().append(finalRender.cloneNode(true)).click(function () {toggle(faq)});
你可能还想在它周围创建一个闭包。
答案 3 :(得分:0)
好的,我找到了一种方法:
var faq = $('.faq_answer');
faq.prev().append(finalRender.cloneNode(true)).click(function () {toggle($(this).siblings())});
给我当前faq dom对象的所有兄弟姐妹。
然后在我的切换功能中,我添加了:
element = element.get(0);
这似乎让我得到了我想要操作的dom元素。目前我认为它很强大,但实际上我不明白为什么它应该像那样工作。