移动端导航栏jQuery与lightbox++冲突,$.noConflict()用法求助
冲突解决步骤
冲突根源为lightbox++依赖的Prototype库与jQuery默认都占用$作为全局变量别名,按以下步骤修改即可实现两个功能同时正常运行:
步骤1:调整jQuery引入段代码
将原jQuery引入及后续代码替换为以下内容:
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script> // 释放$符号控制权还给Prototype,jQuery后续使用自定义别名jq调用 var jq = jQuery.noConflict(); </script> <script src="js/menu.js"></script>
步骤2:修改menu.js适配jQuery别名(二选一即可,推荐方案一)
方案一(无需改动menu.js原有逻辑,操作最简单)
打开站点目录下的js/menu.js文件:
- 在文件最顶部新增一行代码:
(function($){
- 在文件最底部新增一行代码:
})(jq);
修改后menu.js内部原有所有$符号会自动指向jQuery,无需调整原有功能代码。
方案二(全量替换)
将menu.js文件内所有出现的$符号全部替换为jq即可。
修改完成后刷新页面即可同时正常使用lightbox++图片放大功能与移动端导航栏功能。
内容的提问来源于stack exchange,提问作者AdobeOneKenobi
相关产品推荐
相关产品推荐

