Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用webpack时,jQuery的选择器未定义_Javascript_Jquery_Webpack - Fatal编程技术网

Javascript 使用webpack时,jQuery的选择器未定义

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协作的方

我正在学习webpack,并创建了一个模块来完成一个简单的任务:单击一个元素在其上添加css属性,右边距:5rem

HTML的部分也很简单:

    <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')
    })
}