使用requirejs调用函数

时间:2013-12-02 19:39:49

标签: html requirejs

如何使用requirejs调用函数?

这是一个过于简单的问题,但令人惊讶的是,到目前为止还没有任何教程或示例可以帮助我。

这是我的html文件中的代码。

...
<script src = "stuff.js"></script>
<button onclick="doStuff(4, 2)";>DoStuff</button>
...

这是我的要求js。

define(["jquery"], function ($) {
  function doStuff(a, b) {
    //does some stuff
  }
});

为什么这不起作用?我明白了 ReferenceError:未定义doStuff

2 个答案:

答案 0 :(得分:3)

你当前问题的答案可能是这样的:

<强>的index.html

<button id="the-button">DoStuff</button>
<script data-main="stuff" src="scripts/require.js"></script>

<强> stuff.js

require(["jquery"], function ($) {
  function doStuff(a, b) {
    //does some stuff
  }

  $('#the-button').click(function() {
    doStuff(4, 2);
  });
});

但看起来您可以退后一步,阅读有关现代JavaScript架构和技术的内容。这应该是一个很好的起点:Why is using onClick() in HTML a bad practice?

答案 1 :(得分:0)

我设法通过将函数传递给html代码来找到问题的解决方案。它不是很优雅,但它有效。

<强>的index.html

<button onclick = "doSomeStuff(4,2);">DoStuff</button>
<script>
  require(['stuff.min'], function(myStuff){
    function doSomeStuff(a,b) {
      myStuff.doStuff(a,b);
    }
  });
</script>

<强> stuff.js

define(["jquery"], function ($) {
  function doStuff(a,b) {
    //does some stuff
  }
  return {doStuff:doStuff};
});