错误:类型错误: $(..).选择选择器不是使用 requireJS 加载的函数库

ERROR:TypeError: $(...).selectpicker is not a function loaded library using requirejs

本文关键字:错误 requireJS 加载 函数 类型 选择器 选择      更新时间:2023-09-26

ERROR:TypeError: $(...).选择选择器不是第一次打开 Web 应用程序时发生的函数错误。

在我的应用中.js

requirejs.config({    baseUrl: '',    路径:{        "jquery": "js/jquery",        "jquery-ui": "js/jquery-ui",        文本:"库/文本",        "css": "css",        车把:"JS/车把",        moment: "js/moment.min",        bootstrap: 'js/bootstrap.min',        SomtjQuery: 'widgets/somt/js/somtjquery',        bootstrapselect: 'js/bootstrap-select',        utils: 'widgets/somt/js/utils',        filterwidget: 'widgets/somt/js/filterwidget'    },     垫片:{        车把:{            出口:"车把"        },        "引导程序":{            部门: ['jquery']        },        'bootstrapdatepicker':{deps: ['jquery','bootstrap']},        'Somtjquery': {            deps: ['jquery', 'utils', 'bootstrap']        },        'bootstrapselect': {            deps: ['jquery', 'bootstrap']        },        'jquery': {            出口:"$"        },        "日期选择器":{            deps: ["jquery-ui", "bootstrap"],            导出:"$.fn.datepicker"        },        "工具提示":{            部门: ['jquery'],            导出:"$.fn.tooltip"        },        'filterwidget': {            deps: ['jquery', "jquery-ui", "bootstrap", "bootstrapselect"],            导出:"过滤器小部件"        }    }});在过滤器小部件中.jsdefine(["handlebars",'hbs!widgets/somt/templates/pfilter'],function(Handlebars,filter){    var 选择器 = "#somt-filter-area";    $(选择器).html(过滤器);    $(function selectDatePicker() {        尝试 {            $(selector).find('.selectpicker').selectpicker();        } catch (e) {            console.log("日期选择错误消息:"+e);        }        尝试 {            $(selector).find("#week").datepicker({                显示:"按钮",                按钮图像:"图像/通用日历月字形.svg",                按钮仅图像:真,                第一天: 1,                在显示日之前: 函数(日期) {                    返回 [date.getDay() === weekofday, "];                },                dayNamesMin: ["周日", "周一", "周二", "周三", "周四", "周五", "周六"],                最大日期:当前截止日,                日期格式: '月/日/年'            });        } catch (e) {            console.log("日期选择器错误消息:"+e);        }    });});

特别是我在Firefox 36及更低版本中遇到了错误

你误解了如何使用shim.配置没有正确的依赖项 filterwidget .使用"填充码"必须仅用于非 amd 库。如果文件具有define功能,则它的amd模块shim并且该模块不需要。从shim中删除此代码:

'filterwidget': {
        deps: ['jquery', "jquery-ui", "bootstrap", "bootstrapselect"],
        exports: 'filterwidget'
    }

并在 filterwidget 中设置过滤器小部件的所有依赖项.js:

define(['jquery', "jquery-ui", "bootstrap","bootstrapselect","handlebars",'hbs!widgets/somt/templates/pfilter']

PS:同时从填充程序中删除 jquery、jquery-ui。这是AMD库。你怎么知道?看看图书馆的开头就知道了。例如'jquery-ui'。如果有这样的内容:

if ( typeof define === "function" && define.amd ) {
    // AMD. Register as an anonymous module.
    define([ "jquery" ], factory );
} else {
    // Browser globals
    factory( jQuery );
}

那么就不需要垫片了。