前端插件之间面对重复使用规则的兼容转换---$(...).XXX is not a function

来源:互联网 发布:arm linux 外设使用 编辑:程序博客网 时间:2024/05/16 17:43
   最近在着手开发一个工程的前端工作,开发结束后却碰到了一个前端js报错:$(...).bootstrapTable is not a function   开始是小编也很困惑,着手解决各种*.js直接的版本兼容性,引入的前后顺序校对,发现只要将jQuery.js在bootstrap框架的js之前引入就可以了(小编之前也是这么做的,同时提醒大家:bootstrapTable 需要jQuery1.9.1以上版本才可以兼容使用),但是还是各种报错,无奈只能遍历必应、百度等各大搜索引擎了:   看到网上各种方案,主要链接有以下几个:   1、http://blog.csdn.net/mix_rain/article/details/66541177   2、https://stackoverflow.com/questions/8586306/bootstrap-modal-is-not-a-function   3、https://stackoverflow.com/questions/29355864/bootstrap-uncaught-typeerror-undefined-is-not-a-function   其中主要描述解决方案经过筛选、验证有这几个:   1、改变jQuery的引入顺序位置   2、去除bootstrap的table后的div(千万别使用这种方式,完全就牛头不对马嘴嘛,根本不对应解决的问题,还会导致触发框显示变混乱)   3、使用jQuery的noConflict()函数消去对$的占用,让别的插件可以使用它(小编就是使用了这种方式)   但是小编想在这里分享给大家的是:jQuery.noConflict();也是不可用随意使用的,要考虑页面直接的交互、当前页面的加载问题来做出处理。比如:小编的页面是这样的:   (http://img.blog.csdn.net/20170707115645948?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzIyMzUyNTk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)   因此,jQuery.noConflict();的使用要综合考虑到它的使用场景,小编这里因为是跳转到之前页面要进行使用   function TableInit() {        //初始化Table        this.Init = function() {            $('#tb_admin').bootstrapTable({})}}   以上的bootstrapTable,所以在进入到使用bootstrap页面之前小编才需要对$符占用进行处理,以此来保证页面函数的正常加载使用。   好的,小编本篇内容就是这些,分享jQuery的$符占用解除问题:jQuery.noConflict();   今后在碰到js框架、插件直接相同使用规则冲突报错时可以考虑使用,但需要结合实际场景进行考虑哦。
阅读全文
0 0