如何使用'触发事件;这';word与OOP Javascript
我希望在不复制代码的情况下触发事件。所以我决定创建一个构造函数(类),然后创建一个新对象,其中包含一个连接到事件处理程序的变量。我只是在测试它,但是我不能用如何使用'触发事件;这';word与OOP Javascript,javascript,oop,constructor,prototype,Javascript,Oop,Constructor,Prototype,我希望在不复制代码的情况下触发事件。所以我决定创建一个构造函数(类),然后创建一个新对象,其中包含一个连接到事件处理程序的变量。我只是在测试它,但是我不能用if语句触发alert()使用this.link它是这样工作的:if(el)但不是这样:if(el==this.link) 你能创建一个提琴吗?对我有效,对你的代码没有任何更改:我仍然不能让它在本地工作,一切都有效,alert()可以使用:if(el)但不能使用if(el==this.link)?…使用@rgthree的jsFiddle演示并
if
语句触发alert()
使用this.link
它是这样工作的:if(el)但不是这样:if(el==this.link)
你能创建一个提琴吗?对我有效,对你的代码没有任何更改:我仍然不能让它在本地工作,一切都有效,alert()可以使用:if(el)但不能使用if(el==this.link)?…使用@rgthree的jsFiddle演示并更改HTML以在里面添加一个跨距,像这样
Push me
这是你所拥有的吗?这将导致您正在经历的行为。如果是,则将e.target
更改为e.currentTarget
。
var faqOne = document.getElementById("faqOne");
var hiddenOne = document.querySelector("p.faqOneHidden");
faqOne.addEventListener("click", function (e) {
showFaqOne.showClickedFaq(e);
}, false);
function DisplayQFaqs(link, faq) {
this.link = link;
this.faq = faq;
}
DisplayQFaqs.prototype.showClickedFaq = function (e) {
var el = e.target;
if (el === this.link) {
alert('hi');
}
};
var showFaqOne = new DisplayQFaqs(faqOne, hiddenOne);