前もって謝罪これは非常に単純な解決策であり、私は重度の脳のおならの真っ只中にいるように感じます。私はES6構文を使用してクリックしているアイテムのデータIDを取得しようとしていますが、どの方法で実行しても定義されません。要素を選択するときにデータIDを見つけることができません
HTML
<ul>
<li class="list-item" data-id="item-1">Click me</li>
<li class="list-item" data-id="item-2">Click me</li>
<li class="list-item" data-id="item-3">Click me</li>
</ul>
JSが
let $el = $('ul');
class List {
constructor($el) {
this.$el = $el;
this.$listItem = $el.find('li');
this.attachHandlers();
}
attachHandlers() {
this.$listItem.on('click',() => {
var data = $(this).attr('data-id');
console.log(data);
});
}
}
const _init =() => {
if ($el.length) {
$el.each((i, v) => {
new List($(v));
});
}
};
_init();
アイブ氏がダウンし、できるだけ多くのコードを単純化し、誰もが私がここで間違ってやっているものを参照してください?
これは、リスト内ではなく、クリックされた要素の最初の要素のデータ-IDの内容を返すように思われます。イベントを渡してconsole.log e.currentTargetを渡すと正しい要素が表示されますが、常に最初の要素のデータIDが返されます – user934902
@ user934902 - コンストラクタは常に最初の 'li'を'これは$ listItem'です。 – 31piy
私はあなたの答えについて、あなたが説明したように矢印の機能を使ってどのように問題を解決するのか混乱しています – user934902