Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery plugins 无法调用插件_Jquery Plugins - Fatal编程技术网

Jquery plugins 无法调用插件

Jquery plugins 无法调用插件,jquery-plugins,Jquery Plugins,我正在尝试开发一个插件,将datagrid呈现为html元素。例如: <div id="datagrid"> <!-- Renderizado via Backbone.js --> </div> 我这样调用函数: // csAuditarSesiones.js $("#datagrid").csDatagrid({ columns: cols, url: $("#sfAction").val(), filterBy: 'us

我正在尝试开发一个插件,将datagrid呈现为html元素。例如:

<div id="datagrid">
    <!-- Renderizado via Backbone.js -->
</div>
我这样调用函数:

// csAuditarSesiones.js
$("#datagrid").csDatagrid({
    columns: cols,
    url: $("#sfAction").val(),
    filterBy: 'user_str'
});
Chrome说:

未捕获的TypeError:对象[Object Object]没有方法“csDatagrid”

加载库队列(Chrome开发者工具):

  • JQuery
  • csDatagrid(我的插件)
  • CSAuditArseSones(包含当前页面代码的脚本,具有插件调用)
  • 谢谢

    编辑1

    显然插件未加载,请按照代码始终打印“未加载!”:


    这里的原因是您正在DocumentReady事件中定义插件。因此,调用此插件的元素必须在加载插件后调用插件

    尝试在load\ready事件之外定义新插件,例如

    (function($) {
            $.fn.csDatagrid = function(options) {
               // Code ...
            };
        }, (jQuery));
    
    $(document).ready(function(){
      $("#datagrid").csDatagrid({
        columns: cols,
        url: $("#sfAction").val(),
        filterBy: 'user_str'
    });
    
    }))

    仅供参考(现在一定要读)

    编辑

    是否有可能加载多个jQuery版本?当存在冲突时,可能会发生这种情况。还要确保在javascript文件之后和document ready函数之前加载插件

    还有一种现象(我不知道为什么我认为在加载多个版本时会出现这种情况)发生,您必须将$callback添加到您的ready函数中。比如

    $(document).ready(function($){
       //TODO: Code here
    });
    
    立即调用函数的最后一行有错误。 },(jQuery));应该是:


    })(jQuery)

    我读了文档,但我还没有确定是否在ready listener中编写插件。所以,更改这些行,但是插件仍然不工作。插件是在另一个文件中定义的,这很重要吗?不,我只加载一个JQuery版本。我遵循本文详述的步骤。这个,为我工作。
    (function($) {
            $.fn.csDatagrid = function(options) {
               // Code ...
            };
        }, (jQuery));
    
    $(document).ready(function(){
      $("#datagrid").csDatagrid({
        columns: cols,
        url: $("#sfAction").val(),
        filterBy: 'user_str'
    });
    
    $(document).ready(function($){
       //TODO: Code here
    });