首页 > 解决方案 > JavaScript :- 不能在初始化之前调用 A 上的方法;试图调用方法“resizeGrid”

问题描述

好吧,我正在尝试将一个在一个文件中具有对象和方法的函数调用到另一个文件。

File 1 --
    var a ={
            resizeGrid : function(){
            //this manipulates the height & width of a grid
                                   }
           }
File 2 --
    var b ={
            manipulateGrid: function(){
            $('#containerGrid_0').a('resizeGrid');
                                      }
           }

我正在尝试将旧版本的 Jquery 转换为最新版本,即。1.7 到 2.2.2 使用迁移插件。面对这个问题" cannot call methods on A prior to initialization; attempted to call method 'resizeGrid'"

尝试了一些类似下面的解决方案,但没有奏效。 $('#containerGrid_0').a().a('resizeGrid');

有关信息,请查看 jquery ui 对话框:在初始化之前无法调用对话框上的方法

标签: javascriptjquerynode.jsjqgrid

解决方案


根据您提供的内容,我无法准确说出您的功能在做什么,或者您如何使用它们。但这里有一个如何初始化它们的例子。

您可以通过单击此处来玩它:jsFiddle Example

$.fn.A = function(sFunc){
    var agrid = {
      resizegrid:function(ele){
        ele.append('<div>Hello</div>')
      }
    }
  agrid[sFunc](this)
};

$.fn.B = function(sFunc){
  var help = {
    checkResize:function(ele){
        ele.A('resizegrid')
    }
  }
  help[sFunc](this)
}

$('#btn').click(function(){
    $('body').B('checkResize')
})

推荐阅读