創建相應的元素后,我想在類中添加一個事件偵聽器。
在appendSelectedFilter函式內的事件偵聽器中,我想參考單擊的元素。由于我無法this在此背景關系中使用,因此我嘗試創建一個 jQuery 物件并將其決議為resetThisFilter函式,但該物件的長度為0.
我在這里錯過了什么?如何將單擊的物件決議為另一個函式?
class RecipeFilter {
constructor(filterkategories, response) {
this.filterkategories = filterkategories;
this.response = response;
}
appendSelectedFilter(filterItem) {
let value = filterItem.children[0].children[0].value;
let filter = `<div hljs-subst">${value}" ><span ></span>${value}</div>`;
if ($(".checked-filter").find(`.${value}`).length === 0) {
$(".checked-filter").prepend(filter);
}
$(document).on("click", ".selectedFilter", () => {
this.resetThisFilter($(`.selectedFilter .${value}`));
});
}
var recipeFilter = new RecipeFilter(filterkategories, response);
recipeFilter.renderFilters(filterkategories);
$(document).on("click", ".filter-list-item", function() {
recipeFilter.appendSelectedFilter(this);
});
uj5u.com熱心網友回復:
接受 Event 物件作為箭頭函式的引數,然后您可以使用target事件的屬性來檢索用戶單擊的元素:
appendSelectedFilter(filterItem) {
let value = filterItem.children[0].children[0].value;
let filter = `<div hljs-subst">${value}" ><span ></span>${value}</div>`;
if ($(".checked-filter").find(`.${value}`).length === 0) {
$(".checked-filter").prepend(filter);
}
$(document).on("click", ".selectedFilter", e => {
this.resetThisFilter($(e.target));
});
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/380684.html
標籤:javascript 查询 前端
