ajax完成后重新绑定

时间:2016-09-28 21:56:33

标签: javascript jquery ajax

我目前正在通过模块化模式处理应用程序。

我目前遇到的问题是,一旦Ajax完成,我希望能够在对象中触发一个函数。我可以看到的对象,但是当我指定一个函数时,它会失败并返回未定义

JS

var TestCase = {
  settings: {
    cu: $('.select'),
  },

  init: function() {
    se = this.settings;
  },

  windowsReady: function() {
    TestCase.init();
    if ($.fn.selectBox) {
      TestCase.selectBind();
    }
  },

  ajaxComp: function() {
    TestCase.init();
    TestCase.selectBind();
  },

  selectBind: function(){
    se.cu.selectBox();
  },

};

JS Fire - 当selectBind通过就绪调用加载时,它可以正常工作。但是,如前所述,ajaxcomplete将继续作为TestCase.ajaxComp();的未定义或直接调用TestCase.selectBind();。请注意,当我console.log(TestCase)时,它会列出所有对象。

$(document).ready(function () {
  TestCase.windowsReady();
});

$(document).ajaxSuccess(function() {
  console.log(TestCase);
  TestCase.ajaxComp();
  console.log('completed');
});

1 个答案:

答案 0 :(得分:0)

这是因为这一行:

app.controller('Customer', function($scope) {
  $scope.CustomerName = "Shiv";
  $scope.CustomerCode = "1001";
  $scope.Add = function () {}
  $scope.Update = function () {}
});

se = this.settings; 方法范围内的this将是jQuery对象,而不是TestCase对象。

尝试将其更改为$(document).ajaxSuccess(...)