{ $("#clients-table tbody tr").cl-6ren">
gpt4 book ai didi

javascript - jQuery $(this) 在 nodejs 模块上是 "undefined"(使用 Browserify)

转载 作者:行者123 更新时间:2023-11-30 09:40:43 30 4
gpt4 key购买 nike

我创建了以下 NodeJs 模块:

import $ from 'jquery';

module.exports = () => {

$("#clients-table tbody tr").click(() => {

let $this = $(this);

console.log($this);
console.log($(this));
console.log($(this).attr("class"));
console.log($("#clients-table tbody tr").attr("class"));
console.log("end");
});
}

我的 Browserify 入口点如下所示:

"use strict";

import $ from 'jquery';
import test from './test';

test();

当我点击元素时,点击事件被触发,但是$(this)undefined。这是不同 console.logs 的结果:

test.js:9 he.fn.init {}
test.js:10 he.fn.init {}
test.js:11 undefined
test.js:12 test
test.js:13 end

知道为什么吗?

最佳答案

Arrow functions不要绑定(bind)它自己的this参数——这就是你得到undefined的原因——所以你可以使用正常的函数模式:

$("#clients-table tbody tr").click(function() {

let $this = $(this);

console.log($this);
console.log($(this));
console.log($(this).attr("class"));
console.log($("#clients-table tbody tr").attr("class"));
console.log("end");
});

关于javascript - jQuery $(this) 在 nodejs 模块上是 "undefined"(使用 Browserify),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41269112/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com