Twig(或Symfony?)不运行我的jQuery脚本

时间:2018-05-16 14:35:28

标签: javascript jquery symfony twig symfony4

我目前正在尝试使用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

1 个答案:

答案 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那样容易编码,但到目前为止,这是我发现实际工作的唯一解决方案。

感谢大家的帮助。