这是我的场景,我有三个功能
第一个是main函数,这也调用第二个函数来检索值。
这是第一个电话
this.markdownarea.on("click", "a[data-markdownarea-act]", function(){
//now open a modal window where user will upload a image and get a link
$("#modal-imgupload-content, #modal-bg-imgupload").toggleClass("active");
// now we need the url, so we call the second function to fetch it
var img_up_url = get_img_link();
if(img_up_url){
// now do some thing crazy here ...
}
});
我在第一个函数(上面)中添加了注释,因此它应该解释这个脚本会做什么。
现在是第二个功能:
function get_img_link() {
// pause this function immediately and let the user runs the third function
//manually so the value will assign to val and then resume it.
alert(val);
return val;
}
第三个功能仅在用户单击提交按钮时才有效。在第三个函数执行后,它定义了第二个函数中需要的val
变量的值。
function get_img_url(){
//now when the user click the submit this will get the value of the input field
var e = document.getElementsByName('link_img_up')[0];
val = e.value;
//okay now the value is assigned and the second function should resume
}
val
分配值,第二个选项应该是现在恢复,但不是立即执行第二个返回undefined variable val
所以我希望第二个函数暂停,直到用户运行第三个函数并为val
分配值
我无法找到一种方法来做到这一点!有没有更好的
答案 0 :(得分:0)
由于您只是返回get_img_link()
中的值,请删除该功能
并修改您的get_img_url()
以返回值。
function get_img_url(){
//now when the user click the submit this will get the value of the input field
var e = document.getElementsByName('link_img_up')[0];
val = e.value;
return val;
//okay now the value is assigned and the second function should resume
}
答案 1 :(得分:0)
你不得不将想要暂停的动作分成两部分,我很害怕。
创建一个对象,使用对用户完成选择后要执行的操作的回调进行初始化。为该对象提供一个应该在交互式部件完成后调用的方法。将对象传递给交互方法。
mySelection = $(...);
// now we need the url, so we call the second function to fetch it
get_img_link( function ( img_up_url ) {
if( img_up_url ) {
// now do some thing crazy here ...
mySelection.doSomethingWithImageUpUrl(...)
}
});
第二个对话框获取img_up_url,然后调用回调函数,该函数在其闭包中具有初始选择。就个人而言,更喜欢使用MVCish方法而不是与DOM元素绑定的回调级联。
答案 2 :(得分:0)
我认为您首先需要用户输入然后执行其余代码,这是您可能要寻找的内容:
对于用户输入的模态窗口,我们首先要调用它来分配值,然后执行其余的代码,
$("#modal-imgupload_on").click(function () {
function lol(){
$("#modal-imgupload-content, #modal-bg-imgupload").toggleClass("active");
}
lol();
});
现在我们想要执行剩下的代码而不是暂停。
$("#img_up_sub").click(function () {
var e = document.getElementsByName('link_img_up')[0];
val = e.value;
var img_up_url = val;
if(img_up_url){
var img_edit_process = function(editor){
//do something crazy here
};
//want some function to execute after .....
}
$("#modal-imgupload-content, #modal-bg-imgupload").toggleClass("active");
//now close the modal and reset all the value
});
希望这有助于:)