我有个很奇怪的问题。我只想选择一个单击的元素。我做了很多次,而且它总是有效的,但是这次,jQuery $( this )选择器没有选择单击的元素,而是选择了window对象。请让我知道,如果你有一个想法,这可能是什么原因。我使用的是jQuery 2.1.4和3.3.5
HTML:
<a class="btn btn-danger btn-xs delete-file"><i class="fa fa-trash" aria-hidden="true"></i> Löschen</a>jQuery:
$(document).ready( () => {
$('.delete-file').on('click', () => {
let element = $(this);
console.log(element);
});
});控制台-输出:
n.fn.init [Window]而不是:
n.fn.init [a.btn.btn-danger.btn-xs.delete-file]提前谢谢你!
发布于 2018-03-23 12:08:10
因为你用的是箭头函数。根据标准函数定义,此函数的内容范围不会更改。要使this工作,您需要更改逻辑:
$(document).ready(() => {
$('.delete-file').on('click', function() {
let element = $(this);
console.log(element);
});
});或者,您可以保留箭头函数,并通过引发的事件的target属性检索对单击元素的引用:
$(document).ready( () => {
$('.delete-file').on('click', e => {
let element = $(e.target);
console.log(element);
});
});https://stackoverflow.com/questions/49449325
复制相似问题