Javascript jQuery-函数完成后返回
我觉得这是一件相当简单的事情,但我似乎无法理解。我需要一个函数在一个操作完成后返回它的值Javascript jQuery-函数完成后返回,javascript,jquery,Javascript,Jquery,我觉得这是一件相当简单的事情,但我似乎无法理解。我需要一个函数在一个操作完成后返回它的值 var msg = my_function(); alert(msg); function my_function(){ box = $("<div>"); button = $("<span>submit</span>").click(function(){ box.remove(); return "Hello World!"; });
var msg = my_function();
alert(msg);
function my_function(){
box = $("<div>");
button = $("<span>submit</span>").click(function(){
box.remove();
return "Hello World!";
});
$("body").append(box);
}
var msg=my_函数();
警报(msg);
函数my_函数(){
方框=$(“”);
按钮=$(“提交”)。单击(函数(){
box.remove();
返回“你好,世界!”;
});
$(“正文”)。附加(方框);
}
但是,当我这样做时,它会在框被附加到body标记之前将msg返回为“undefined”。我该如何添加“完成时”或类似的内容呢?您将报税表放错了位置。回调函数中的return语句将不起任何作用
var msg = my_function();
alert(msg);
function my_function(){
box = $("<div>");
button = $("<span>submit</span>").click(function(){
box.remove();
return "Hello World!"; // this return does not make sense
});
$("body").append(box);
return "Hello World!"; // return here what you want
var msg=my_函数();
警报(msg);
函数my_函数(){
方框=$(“”);
按钮=$(“提交”)。单击(函数(){
box.remove();
return“Hello World!”;//此返回没有意义
});
$(“正文”)。附加(方框);
return“Hello World!”//返回您想要的内容
}你把报税表放错地方了。回调函数中的return语句将不起任何作用
var msg = my_function();
alert(msg);
function my_function(){
box = $("<div>");
button = $("<span>submit</span>").click(function(){
box.remove();
return "Hello World!"; // this return does not make sense
});
$("body").append(box);
return "Hello World!"; // return here what you want
var msg=my_函数();
警报(msg);
函数my_函数(){
方框=$(“”);
按钮=$(“提交”)。单击(函数(){
box.remove();
return“Hello World!”;//此返回没有意义
});
$(“正文”)。附加(方框);
return“Hello World!”//返回您想要的内容
}我想这就是你想要的:
my_function(function(msg) { alert(msg); });
function my_function(callbackFn){
box = $("<div>");
button = $("<span>submit</span>").click(function(){
box.remove();
callbackFn("Hello World!");
});
$("body").append(box);
}
my_函数(函数(msg){alert(msg);});
函数my_函数(callbackFn){
方框=$(“”);
按钮=$(“提交”)。单击(函数(){
box.remove();
callbackFn(“你好,世界!”);
});
$(“正文”)。附加(方框);
}
但是你应该把这个
span
放在页面的某个地方。我想这就是你想要的:
my_function(function(msg) { alert(msg); });
function my_function(callbackFn){
box = $("<div>");
button = $("<span>submit</span>").click(function(){
box.remove();
callbackFn("Hello World!");
});
$("body").append(box);
}
my_函数(函数(msg){alert(msg);});
函数my_函数(callbackFn){
方框=$(“”);
按钮=$(“提交”)。单击(函数(){
box.remove();
callbackFn(“你好,世界!”);
});
$(“正文”)。附加(方框);
}
但是你应该把这个
span
放在页面的某个地方。my\u函数不会等到用户执行某个操作。传递给.click()
的是另一个函数,它将作为事件处理程序附加,并在事件发生时执行。这称为异步(在本例中也是事件驱动)行为
获取您正在寻找的返回值的诀窍是为my_函数
提供您自己的回调,该函数将在返回值可用时调用。请注意,只要有人单击按钮,就会执行此回调(顺便说一句,您必须将其添加到正文中,否则它不会显示在任何地方):
var myCallback=函数(msg){
警报(msg);
}
var msg=my_函数(myCallback);
函数my_函数(回调){
变量框=$(“”);
var按钮=$(“提交”)。单击(函数(){
box.remove();
回调(“你好,世界!”);
});
$(“正文”).append(框)。append(按钮);
}
my_函数
不会等待用户执行操作。传递给.click()
的是另一个函数,它将作为事件处理程序附加,并在事件发生时执行。这称为异步(在本例中也是事件驱动)行为
获取您正在寻找的返回值的诀窍是为my_函数
提供您自己的回调,该函数将在返回值可用时调用。请注意,只要有人单击按钮,就会执行此回调(顺便说一句,您必须将其添加到正文中,否则它不会显示在任何地方):
var myCallback=函数(msg){
警报(msg);
}
var msg=my_函数(myCallback);
函数my_函数(回调){
变量框=$(“”);
var按钮=$(“提交”)。单击(函数(){
box.remove();
回调(“你好,世界!”);
});
$(“正文”).append(框)。append(按钮);
}
无论你想做什么,你都需要把它放到你的
click(function() { ... }
。
说明:此函数仅在“单击”实际发生后返回内容
由于您的“my_function()”只会在单击后返回任何内容(它不返回),因此,“msg”将始终是未定义的!->“警报”不会等到分配了“msg”之后才发出…无论您想做什么,都需要将其放入您的
click(function() { ... }
。
说明:此函数仅在“单击”实际发生后返回内容
由于您的“my_function()”只会在单击后返回任何内容(它不返回),因此,“msg”将始终是未定义的!->“警报”不会等到分配了“msg”之后才返回…但如果我不希望它在单击按钮之后返回,该怎么办?然后你应该将你想做的事情作为回调传入。确切地说。看看@rtcherry answer,它会完全这样做。但是,如果我不希望它在单击按钮之前返回,该怎么办?然后你应该以回调的形式传递你想要做的事情。完全正确。请看@rtcherry answer,它将完全做到这一点。您正在添加一个事件侦听器。侦听器可以触发多次,每次单击一次。有返回值没有意义。您正在添加事件侦听器。侦听器可以触发多次,每次单击一次。有一个返回值是没有意义的。