gpt4 book ai didi

javascript - 基本 RequireJS 帮助 - 如何调用/定义函数?同时使用 onclick 和 jquery

转载 作者:可可西里 更新时间:2023-11-01 01:53:49 26 4
gpt4 key购买 nike

帮助!

我很困惑,伙计们......我不知道我在做什么

我昨天和今天一整天都在查看 RequireJS 和 AMD 教程和示例,并了解了这一点,但是我认为我对什么是模块 仍然存在根本性的误解。

  • 我有一堆函数可以从我的 HTML 元素中调用“onClick”...
    1. 如何使用 RequireJS 定义我的函数以便调用它们?很困惑:/我也不明白
    2. 如何调用我的 onLoad 函数(在我的例子中是 $(function(),但我如何在 RequireJS 中启动它?)<

我正在使用 Node v0.10.12

<html>
...
<head>
<script data-main="" src="libraries/require.js"></script>
...
<script>
...
//I really need all these javascript files for every function defined on this page...
require(['simulatorConfiguration.js',
'modelConfiguration.js',
'libraries/jquery-1.10.2.min.js',
'libraries/jquery.lightbox_me.js',
'libraries/jquery-migrate-1.2.1.js',
'libraries/raphael-min.js'], function(start) {

$(function() {

loadPage(); //<--- CALL LOAD PAGE, but it can't find the function
//do some jquery stuff
});

});

//function that get's called on body onload!
define('loadPage', function loadPage()
{
hideAllDivs();
//more jquery stuff...

createModelMenu();
//more jquery stuff...
});

define('hideAllDivs', function hideAllDivs()
{
//some UI stuff...

});

define('createModelMenu', function createModelMenu()
{
//some jquery stuff...
});

define('createTestMenu', function createTestMenu(model_key)
{
var javascriptLoc = "models/" + models[model_key].modelDir + "/testConfiguration.js";
require([javascriptLoc], function(util) {

showModelInformation(model_key);
//some Jquery stuff...
});
});

define('showModelInformation', function showModelInformation(model_key)
{
hideAllDivs();
//some jquery stuff
});

define('showTest', function showTest(test_key)
{
hideAllDivs();
//some RaphaelJS stuff...
});


define('takeControl', function takeControl()
{
//some UI stuff
});

define('giveUpControl', function giveUpControl()
{
//some UI stuff...

});
</script>
</head>
<body>
...
<li><a href="#" id="AoD" onclick="showTests(this.id)">Audio On Demand</a></li>
...
<input type="submit" value="Yes, Release Control" onclick="giveUpControl()">
....
<input type="submit" value="Take Control" onclick="takeControl()">
....
</body>

我需要做这样的事情吗:

//function that get's called on body onload!
define('loadPage', function loadPage()
{
return function(loadPage)
{
hideAllDivs();
//more jquery stuff...

createModelMenu();
//more jquery stuff...
}
});
//and call it with loadPage.loadPage(); ?

或者类似的东西:

//function that get's called on body onload!
define('loadPage', function loadPage()
{
return function()
{
hideAllDivs();
//more jquery stuff...

createModelMenu();
//more jquery stuff...
}
});

function(loadPage)?

我确实看过这些类似的问题:

这些也很有帮助,但还没有:

我尝试将函数分离到另一个文件中,所以我有“index.html”和“Logic.js”...这里是要点:

=========================================

解决方案

https://gist.github.com/anonymous/6470443

最佳答案

(a) 创建和 (b) 加载模块所需的最少代码如下所示:

// (a) Create two modules, 'hideAllDivs' and 'loadPage'.
define ('hideAllDivs', [], function () {
return function() {
};
});

define('loadPage', ['hideAllDivs'], function(hideAllDivs)
{
return function()
{
hideAllDivs();
//more jquery stuff...

createModelMenu();
//more jquery stuff...
};
});

// (b) Load the loadPage module and call it.
require(['jquery-blah-blah', 'loadPage', 'anotherModule'], function($, loadPage, anotherModule) {
$(function() {
loadPage();
});
});

强烈推荐阅读:http://requirejs.org/docs/api.html#define

关于javascript - 基本 RequireJS 帮助 - 如何调用/定义函数?同时使用 onclick 和 jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18619245/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com