【发布时间】:2015-04-28 08:36:35
【问题描述】:
我想将事件处理程序转换为 jquery 样式的单击事件,但它似乎不喜欢传递事件,也许是因为它不再是匿名函数了?
// variables
var faqOne = document.getElementById("faqOne");
var $hiddenOne = $(".faqOneHidden");
// javascript event handler works!
faqOne.addEventListener("click", function(e){
showFaqOne.showClickedFaq(e);
}, false);
// javascript event handle - doesnt work!
$("#faqOne").click(function(){
showFaqOne.showClickedFaq(e);
});
// constructor
function DisplayQFaqs(link, faq){
this.link = link;
this.faq = faq;
}
// method prototype
DisplayQFaqs.prototype.showClickedFaq = function(e){
var el = e.currentTarget;
if(el === this.link) {
this.faq.toggle("slow", function(){
});
}
};
// new DisplayQFaqs Objects
var showFaqOne = new DisplayQFaqs(faqOne,$hiddenOne);
【问题讨论】:
-
你知道是否调用了handler函数吗?也许通过发出警报(“a”)来检查它;那里?
-
小提琴没有导入 jQuery。这有效 - jsfiddle.net/93bm0gs3/2
标签: javascript jquery events handler anonymous-function