如何从jquery中访问变量/函数

时间:2019-04-17 08:53:12

标签: javascript jquery requirejs

我正在使用requireJs加载jQuery和init模块。 init依赖于pageElements。可以从main.js正确访问所有三个负载。

我的问题在init.js中。我希望函数page.attachBehaviours访问函数page.someFunction。该行为附加到button元素,但是单击按钮时出现错误:

  

this.someFunction()不是函数。

// main.js:
require.config({
  paths: {
    'jQuery': 'vendor/jquery-3.3.1.min'
  },
  shim: {
    'jQuery': {
      exports: '$'
    }
  }
});

require(["jQuery", "./app/init"], function($, init ) {
  $(document).ready(function() {
    init.page.attachBehaviours();
  });
});

// init.js:
define(['./pageElements'], function (pageElements) {
  return {
    page:{
      attachBehaviours: function() {
        $(pageElements.toolBoxButton).on('click', function (event) {
          this.someFunction(); //error this.someFunction is not a function
        });
      },
      someFunction: function () { // the function I want to call from toolBoxButton on click event 
        console.log("function called");
      }
    }
  };
});

为了完整起见,还包含了pageElements

define([], function () {
  return {
    toolBoxButton: '#toolBoxButton'
  };
}); 

0 个答案:

没有答案