我目前正在尝试使用Symfony 4创建一个网站。问题是我的一个页面需要一个jQuery脚本才能工作,部分工作正在运行,但这些函数没有调用,为什么?< / p>
未被调用的代码示例:
$(document).ready(function(){
$(".someClass").click(function (event) {
event.preventDefault();
$(".active.focused").toggleClass("active");
$(".focused").toggleClass("focused");
$(this).toggleClass("active");
$(this).toggleClass("focused");
refresh_contents(); //this is another external function that I don't
//manage to call, even when called in the
//executed part
});
});
我确信它不是来自我的javascript,因为我测试了它“off-symfony”。 在此先感谢Crikripex
答案 0 :(得分:0)
好吧,所以在几小时后试图找出问题的原因和位置,我得出结论(感谢@fyrye)jQuery和Symfony4或Webpack Encore之间可能存在兼容性问题。 然后我决定将我的代码从jQuery“翻译”到没有任何库的Javascript,并且它工作正常。 总结一下,我来自:
$(document).ready(function(){
$(".someClass").click(function (event) {
event.preventDefault();
$(".active.focused").toggleClass("active");
$(".focused").toggleClass("focused");
$(this).toggleClass("active");
$(this).toggleClass("focused");
refresh_contents();
});
});
到:
for(i=0;i<maxId;i++){
document.getElementById("contain_" + i).onclick = function(event){
event.preventDefault();
document.getElementsByClassName("focused")[0].classList.remove("active");
document.getElementsByClassName("focused")[0].classList.remove("focused");
document.getElementById(this.id).classList.add("active");
document.getElementById(this.id).classList.add("focused");
refresh_contents();
}
}
我知道它看起来不那么花哨,它并不像jQuery那样容易编码,但到目前为止,这是我发现实际工作的唯一解决方案。
感谢大家的帮助。