使用noConflict时,我收到类型错误 - “$不是函数”

时间:2016-05-01 23:37:02

标签: javascript jquery

我正在做一个Dashboard UI,我整合了很多Js组件。以前它工作正常(主要是数据表),现在我做了一些Form组件切换和复选框。我得到一个类型错误 - jQuery不是一个使用无冲突的函数。

虽然我已经尝试了在StackOverflow上发布的所有建议,但是在使用无冲突时,没有一个解决方案能够正常运行并且遇到同样的问题。

目前的问题是我的数据表无效...

Click Here for the test Page

TypeError: $ is not a function
var oTable = $('#ActiveMedicalProblems').dataTable({

脚本在我的数据表中

var oTable = $('#ActiveMedicalProblems').dataTable({
            "aLengthMenu": [
                [5, 15, 20, -1],
                [5, 15, 20, "All"] // change per page values here
            ],
            // set the initial value
            "iDisplayLength": 5,
            "sDom": "<'row'<'col-lg-6'l><'col-lg-6'f>r>t<'row'<'col-lg-6'i><'col-lg-6'p>>",
            "sPaginationType": "bootstrap",
            "oLanguage": {
                "sLengthMenu": "_MENU_ records per page",
                "oPaginate": {
                    "sPrevious": "Prev",
                    "sNext": "Next"
                }
            },
            "aoColumnDefs": [{
                    'bSortable': false,
                    'aTargets': [0]
                }
            ]
        });

我页面中的脚本是

jQuery(document).ready(function() {
          ActiveMedicalProblems.init();
      });

我尝试过其他方法,但没有运气。

(function($){
   ActiveMedicalProblems.init();
});

感谢!!!

1 个答案:

答案 0 :(得分:2)

切断noConflict电话 - 这将是一个短期解决方案,让所有代码再次运作。

或者,包装“数据表”代码(而不是调用),如下所示:

(function($) {
var oTable = $('#ActiveMedicalProblems').dataTable({
...
})(jQuery);

但是,您将无法定义全局名称。更简单的方法可能是简单地用$替换jQuery的每个实例。你的代码会更长一些,但它将是明确的。