如何在类内部添加事件侦听器。无论我如何实例化onclick函数,它都行不通。过程是相同的,并且工作在类之外而没有this。参考。但不适用于此。类内的引用。问题不只是添加参考功能。这是在类内部添加引用函数的正确方法。回答了。使用es6箭头功能自动绑定。
class MultiPage {
//constructor is used to initialize state and events
constructor() {
this.purchaseButton = document.getElementsByClassName("button");
this.itemId = document.getElementsByClassName("itemId");
this.description = document.getElementsByClassName("description");
this.price = document.getElementsByClassName("price");
this.quantity = document.getElementsByClassName("quantity");
this.type = document.getElementsByClassName("type"); //outer set loop through inner elemnts
this.pushProductOption = [];
this.photo = document.getElementsByClassName("photoSet"); //outer set loop through inner elemnts
this.pushPhotoSet = [];
this.cart = document.getElementsByClassName("cart")[0];
this.setEventListeners();
}
setEventListeners() {
for (let i = 0; i < this.purchaseButton.length; i++) {
this.purchaseButton[i].addEventListener(
"click",
this.addToCart(
this.purchaseButton[i],
this.itemId[i].innerHTML,
this.description[i].innerHTML,
this.photo[i].src,
this.price[i].innerHTML,
1,
this.type[i].value
)
);
}
}
}
答案 0 :(得分:1)
this.purchaseButton[i].addEventListener("click", () =>
this.addToCart(
this.purchaseButton[i],
this.itemId[i].innerHTML,
this.description[i].innerHTML,
this.photo[i].src,
this.price[i].innerHTML,
1,
this.type[i].value
)
);
您应该给一个函数作为第二个参数,我希望用箭头函数包装它可以解决问题。
答案 1 :(得分:-1)
这应该可以帮助您入门。当您使用e6时,它将自动绑定。这是旧方法。
input_df=spark.createDataFrame(sc.textFile("test.txt").map(lambda x : tuple([x[0:2], x[3:]])))
+-----------+-----------------+
| _1 | _2 |
+-----------+-----------------+
| 01|"Alice","The Cat"|
| 02| Yes|
| 03| 2000,01,01|
| 01| "Bob","The Dog"|
| 02| No|
| 03| 2001,01,04|
+-----------+-----------------+
types=["01","02","03"]
for type in types:
input_df.filter(col("_1") == type).write.mode('overwrite').csv(f"{type}_rows.csv")