Javascript 需要具有常规函数的JS
我刚刚开始使用requireJS,我想知道如何访问需要jQuery的常规方法 假设我有一个叫做displayError的方法 既然它已经不在全球范围内了,我该怎么称呼它呢 我试着用以下方法将其设置到窗口: window.displayError=函数(消息){ ... } 但这也不起作用 代码如下所示:Javascript 需要具有常规函数的JS,javascript,requirejs,Javascript,Requirejs,我刚刚开始使用requireJS,我想知道如何访问需要jQuery的常规方法 假设我有一个叫做displayError的方法 既然它已经不在全球范围内了,我该怎么称呼它呢 我试着用以下方法将其设置到窗口: window.displayError=函数(消息){ ... } 但这也不起作用 代码如下所示: require(['jquery'],function($){ window.show_save_state = function(state, message, time) {
require(['jquery'],function($){
window.show_save_state = function(state, message, time)
{
$(".save-state").remove();
var save_state = $("<div />").addClass("save-state").appendTo("body");
var newMessage = "";
switch (state) {
case 0:
newMessage = lang("error");
save_state.addClass("error");
break;
case 1:
newMessage = lang("wait");
save_state.addClass("wait");
break;
case 2:
newMessage = lang("saved");
save_state.addClass("saved");
break;
}
var mMessage = (typeof message !== "undefined" && message != "") ? message : newMessage;
save_state.html("<span class='save-state-circle'>" + mMessage + "</span>");
save_state.show();
time = (typeof time !== "undefined") ? time : 2000;
time = (typeof message === "undefined" && state == 1) ? 0 : time;
if (time > 0) {
setTimeout(function() {
save_state.fadeOut(200, function() {
save_state.remove();
})
}, time);
}
}
window.hide_save_state = function() {
$(".save_state").remove();
}
});
define([
"jquery"
], function(
$
) {
var con = {
displayError: function (message) {
// ...code...
},
displaySomethingElse: function (foo) {
// ...code...
}
};
return con;
});
require(['jquery'],函数($){
window.show\u save\u state=功能(状态、消息、时间)
{
$(“.save state”).remove();
var save_state=$(“”)。addClass(“save state”)。appendTo(“body”);
var newMessage=“”;
开关(状态){
案例0:
newMessage=lang(“错误”);
save_state.addClass(“错误”);
打破
案例1:
newMessage=lang(“等待”);
save_state.addClass(“wait”);
打破
案例2:
newMessage=lang(“已保存”);
save_state.addClass(“已保存”);
打破
}
var mMessage=(消息类型!=“未定义”&&message!=”)?消息:newMessage;
save_state.html(“+mMessage+”);
save_state.show();
时间=(时间类型!=“未定义”)?时间:2000;
时间=(消息类型==“未定义”&&state==1)?0:时间;
如果(时间>0){
setTimeout(函数(){
保存状态。淡出(200,函数(){
保存状态。删除();
})
},时间);
}
}
window.hide\u save\u state=函数(){
$(“.save_state”).remove();
}
});
使用require的主要目的之一是将垃圾排除在全局命名空间之外。假设您有一个文件
con.js
,其中保存控制台显示消息(包括displayError
),如下所示:
require(['jquery'],function($){
window.show_save_state = function(state, message, time)
{
$(".save-state").remove();
var save_state = $("<div />").addClass("save-state").appendTo("body");
var newMessage = "";
switch (state) {
case 0:
newMessage = lang("error");
save_state.addClass("error");
break;
case 1:
newMessage = lang("wait");
save_state.addClass("wait");
break;
case 2:
newMessage = lang("saved");
save_state.addClass("saved");
break;
}
var mMessage = (typeof message !== "undefined" && message != "") ? message : newMessage;
save_state.html("<span class='save-state-circle'>" + mMessage + "</span>");
save_state.show();
time = (typeof time !== "undefined") ? time : 2000;
time = (typeof message === "undefined" && state == 1) ? 0 : time;
if (time > 0) {
setTimeout(function() {
save_state.fadeOut(200, function() {
save_state.remove();
})
}, time);
}
}
window.hide_save_state = function() {
$(".save_state").remove();
}
});
define([
"jquery"
], function(
$
) {
var con = {
displayError: function (message) {
// ...code...
},
displaySomethingElse: function (foo) {
// ...code...
}
};
return con;
});
然后,以最基本的形式,您可以通过require语句运行此方法,如下所示:
require('con').displayError('Move every zig!');
或在另一个子模块内,如:
define([
"con"
], function(
con
) {
var submodule = {
someMethod: function () {
con.displayError('Watership Down');
}
};
return submodule;
});
使用require的主要目的之一是将垃圾排除在全局命名空间之外。假设您有一个文件
con.js
,其中保存控制台显示消息(包括displayError
),如下所示:
require(['jquery'],function($){
window.show_save_state = function(state, message, time)
{
$(".save-state").remove();
var save_state = $("<div />").addClass("save-state").appendTo("body");
var newMessage = "";
switch (state) {
case 0:
newMessage = lang("error");
save_state.addClass("error");
break;
case 1:
newMessage = lang("wait");
save_state.addClass("wait");
break;
case 2:
newMessage = lang("saved");
save_state.addClass("saved");
break;
}
var mMessage = (typeof message !== "undefined" && message != "") ? message : newMessage;
save_state.html("<span class='save-state-circle'>" + mMessage + "</span>");
save_state.show();
time = (typeof time !== "undefined") ? time : 2000;
time = (typeof message === "undefined" && state == 1) ? 0 : time;
if (time > 0) {
setTimeout(function() {
save_state.fadeOut(200, function() {
save_state.remove();
})
}, time);
}
}
window.hide_save_state = function() {
$(".save_state").remove();
}
});
define([
"jquery"
], function(
$
) {
var con = {
displayError: function (message) {
// ...code...
},
displaySomethingElse: function (foo) {
// ...code...
}
};
return con;
});
然后,以最基本的形式,您可以通过require语句运行此方法,如下所示:
require('con').displayError('Move every zig!');
或在另一个子模块内,如:
define([
"con"
], function(
con
) {
var submodule = {
someMethod: function () {
con.displayError('Watership Down');
}
};
return submodule;
});
设置
window.displayError
应该可以在设置全局变量方面起作用,但是RequireJS/AMD的基本思想是不需要这样做。你能显示更多的代码吗?设置窗口。displayError
应该可以设置一个全局值,但是RequireJS/AMD的基本思想是你不需要这样做。你能展示更多的代码吗?