Javascript 使用webpack时,jQuery的选择器未定义
我正在学习webpack,并创建了一个模块来完成一个简单的任务:单击一个元素在其上添加css属性,右边距:5rem HTML的部分也很简单:Javascript 使用webpack时,jQuery的选择器未定义,javascript,jquery,webpack,Javascript,Jquery,Webpack,我正在学习webpack,并创建了一个模块来完成一个简单的任务:单击一个元素在其上添加css属性,右边距:5rem HTML的部分也很简单: <div class="more"> <div class="more-sign"></div> </div> 错误消息:无法读取未定义的属性“addClass”。为什么这个.更多是未定义的?这是因为jQuery吗?在这种情况下,纯JavaScript与webpack协作的方
<div class="more">
<div class="more-sign"></div>
</div>
错误消息:无法读取未定义的属性“addClass”。为什么这个.更多是未定义的?这是因为jQuery吗?在这种情况下,纯JavaScript与webpack协作的方式是什么?如果是jquery问题,请尝试将其添加到您的webpack配置中
plugins: [
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery"
})
]
jQuery似乎已加载,因为您在this.mode.addClass上遇到错误,而不是在$.mode或this.more.click上 问题在于上下文,在click回调函数中,这不是指ShiftRight实例,而是指clicked元素。使用$this.addClassmore单击 或者一个箭头函数
shifting() {
this.more.click(() => {
this.more.addClass('more--clicked')
})
}
我不知道什么是网页包,但我会尝试一下,试试这个;因为您无论如何都在按钮的处理程序中。仍然是相同的错误消息…按照ProgrammerV5所说的做,或者使用箭头函数来保留上下文this.more.click=>{this.more.addClass'more-clicked';};通常箭头函数不适用于此,但无论如何我也尝试了一下。相同的错误消息。箭头功能实际上可以工作。这并不是因为利润权根本不起作用。
shifting() {
this.more.click(function() {
$(this).addClass('more--clicked')
})
}
shifting() {
this.more.click(() => {
this.more.addClass('more--clicked')
})
}