我正在为prestashop网站开发一个自定义主页。
我没有使用布局,因为我的主页必须干净,我不需要像页眉和页脚和菜单等的东西
使用聪明的全局变量,我在<head>
标签中调用我的jquery,就像这样
<script src='{$urls.js_url}jquery.js'></script>
当我在线访问我的页面时,网址是正确的(mysite.com/mytheme/js/jquery.js),如果我去了它,我可以看到jquery文件。
在我关闭<body>
标签之前,我称之为“家庭自定义”js文件
<script src='{$urls.js_url}my_script.js'></script>
从这样开始
$(function).ready(function(){
我的浏览器抛出错误Uncaught ReferenceError: $ is not defined
这是奇怪的,因为Jquery在开始时加载。我很困惑
编辑
即使我复制jquery代码并将其放在<script>
中的<head>
标记中,我也得到了错误
这里的解决方案:
它类似于其他cms-> jquery冲突问题,但它值得解释,因为没有帖子涵盖Prestashop环境中的prestashop jQuery.noconflict()用法
由于prestashop在编译模板时使用/js/jquery/jquery.noConflict.php
中调用的noConflict classe,因此jquery变量被静音($和jQuery)
因此,当您尝试使用自定义模板/主题中的jquery时,您必须遵循$.noConflict function的规则
如果您尝试执行自定义jquery函数,请将代码包装在其中
(function($){
// this place is safe to use $ outside the $.ready function
$.fn.yourCustomFunction = function(){}
}
如果您要编写一些Jquery代码,只需将变量$或jQuery放在$ .ready函数参数中,如下所示:
$(document).ready(function($){
// $ is safe to use. if you prefere jQuery instead, replace the parameter '$'
}