在 Symfony 4 中通过 ES6 使用 jQuery
Using jQuery via ES6 in Symfony 4
我正在使用 Symfony 4 构建一个相当简单的应用程序。我目前正在加载 Symfony Jquery 和 bootstrap,并且想开始构建我自己的触发器。所以我开始添加我自己的 JS。在这个 JS 中,我需要检测是否单击了某个按钮,所以我的直觉是使用 jQuery 的点击功能。
我很难让它正常工作。我的附加代码正在由 Webpack 编译(通过 encore),但无论我把它放在什么元素上,我的事件都不会触发。据我所知,我的额外 Javascript 功能根本没有被调用。
感谢任何帮助。我绝不是 ES6 专家,所以我这里可能有一些非常错误的地方。
assets/js/app.js
import '../css/app.scss';
import $ from 'jquery';
import 'bootstrap';
import './checkLoan'; ## This is my file
app/js/checkLoan.js
export default function() {
console.log('i got loaded');
$('#my-button').click(function (event) {
event.preventDefault();
console.log('I got clicked')
});
};
嘿,您的点击侦听器从未被触发,因为您导入了它,但您从未调用该函数。
您可以在单独的文件中创建您的侦听器函数,例如 listener.js :
export default {
clickListener(){
console.log('i got loaded');
$('#my-button').click(function (event) {
event.preventDefault();
console.log('I got clicked')
});
}
};
并且在页面加载完成后触发主 app.js 中的函数:
import $ from 'jquery';
import listeners from "./listeners"
$(document).ready(function () {
listeners.clickListener();
...
});
编辑:还要确保项目根目录下的 webpack.config.js 文件未注释以下行
.autoProvidejQuery()
我正在使用 Symfony 4 构建一个相当简单的应用程序。我目前正在加载 Symfony Jquery 和 bootstrap,并且想开始构建我自己的触发器。所以我开始添加我自己的 JS。在这个 JS 中,我需要检测是否单击了某个按钮,所以我的直觉是使用 jQuery 的点击功能。
我很难让它正常工作。我的附加代码正在由 Webpack 编译(通过 encore),但无论我把它放在什么元素上,我的事件都不会触发。据我所知,我的额外 Javascript 功能根本没有被调用。
感谢任何帮助。我绝不是 ES6 专家,所以我这里可能有一些非常错误的地方。
assets/js/app.js
import '../css/app.scss';
import $ from 'jquery';
import 'bootstrap';
import './checkLoan'; ## This is my file
app/js/checkLoan.js
export default function() {
console.log('i got loaded');
$('#my-button').click(function (event) {
event.preventDefault();
console.log('I got clicked')
});
};
嘿,您的点击侦听器从未被触发,因为您导入了它,但您从未调用该函数。
您可以在单独的文件中创建您的侦听器函数,例如 listener.js :
export default {
clickListener(){
console.log('i got loaded');
$('#my-button').click(function (event) {
event.preventDefault();
console.log('I got clicked')
});
}
};
并且在页面加载完成后触发主 app.js 中的函数:
import $ from 'jquery';
import listeners from "./listeners"
$(document).ready(function () {
listeners.clickListener();
...
});
编辑:还要确保项目根目录下的 webpack.config.js 文件未注释以下行
.autoProvidejQuery()