Javascript Jquery即兴函数运行顺序问题
我有一个使用$.prompt Jquery(即兴)插件的函数。这很好,只是每当我调用函数时,它都会在调用它的函数的末尾运行 这里是函数Javascript Jquery即兴函数运行顺序问题,javascript,jquery,Javascript,Jquery,我有一个使用$.prompt Jquery(即兴)插件的函数。这很好,只是每当我调用函数时,它都会在调用它的函数的末尾运行 这里是函数 function addfile(){ var txt = '<?php echo $JSString; ?>'; function mycallbackform(v,m,f){ if(v != undefined) var newText = f.alertName + " , " + f.ale
function addfile(){
var txt = '<?php echo $JSString; ?>';
function mycallbackform(v,m,f){
if(v != undefined)
var newText = f.alertName + " , " + f.alertName.replace("-", " ").replace(".php", "");
alert(newText);
}
$.prompt(txt,{
callback: mycallbackform,
buttons: { Add: 'add', Cancel: 'cancel' }
});
}
。。。将执行以下操作
无论我做什么,addfile()总是最后运行,这让我很困惑。我对这些东西很陌生,所以如果我做了一些非常愚蠢的事情,请不要害怕指出。
子注:函数位于我的php文件头中,因此
可以工作。我已经删除了php并将该函数插入到外部JS文件中,但同样的问题仍然存在,因此引起问题的似乎是$.prompt,而不是JS
关于如何让这个JS正常工作的任何想法都非常受欢迎。
非常感谢您的提示函数是异步的,这就是它接受回调函数作为参数的原因 试试这个:
prompt(
txt,
{callback: function() {
addfile();
prompt("after");
}}
);
上述方法不起作用。下面是代码部分。在阻止页面之前显示警报。我正在使用
blockUI
function blockPage(){
$.blockUI({
message: "<img src='loading.gif'/>",
color: 'transparent',
backgroundcolor: '#777777',
top: $(window).height()/2
});
return true;
}
function dosomethingelse(){
var aa;
var bb;
alert("c");
}
function createOverlay(){
var overlaySubmit = function(e,v,m,f){
if(v === -1){
alert("Closing the prompt");
$.prompt.close();
return false;
} else if(v === 1){
dosomethingelse();
//blockPage();
return false;
}
};
var prompt = $.prompt(
"This is a test prompt",
{
opacity: 0.3,
buttons: {Add: 1, Cancel: -1},
position: {x: 300},
prefix: 'jqi',
submit: function(e,v,m,f){
blockPage();
try{
alert(g);
} catch (err){
alert("here");
}
overlaySubmit(e,v,m,f);
}
});
prompt.bind('promptsubmit',blockPage);
}
<!-- Ajax-->
$('#ajax').click(function(){
$.ajaxSetup({async:false});
$.ajax({
url: "test-server.txt",
success: function(response){
createOverlay();
return false;
},
error: function(){
return false;
}
});
});
函数块页(){
$.blockUI({
消息:“”,
颜色:'透明',
背景颜色:“#777777”,
顶部:$(窗口).height()/2
});
返回true;
}
函数dosomethingelse(){
var aa;
var-bb;
警报(“c”);
}
函数createOverlay(){
var overlaySubmit=函数(e,v,m,f){
如果(v==-1){
警报(“关闭提示”);
$.prompt.close();
返回false;
}else if(v==1){
dosomethingelse();
//blockPage();
返回false;
}
};
var prompt=$.prompt(
“这是一个测试提示”,
{
不透明度:0.3,
按钮:{添加:1,取消:-1},
位置:{x:300},
前缀:“jqi”,
提交:功能(e、v、m、f){
blockPage();
试一试{
警报(g);
}捕捉(错误){
警报(“此处”);
}
上覆submit(e,v,m,f);
}
});
prompt.bind('promptsubmit',blockPage);
}
$('#ajax')。单击(函数(){
$.ajaxSetup({async:false});
$.ajax({
url:“test server.txt”,
成功:功能(响应){
createOverlay();
返回false;
},
错误:函数(){
返回false;
}
});
});
function blockPage(){
$.blockUI({
message: "<img src='loading.gif'/>",
color: 'transparent',
backgroundcolor: '#777777',
top: $(window).height()/2
});
return true;
}
function dosomethingelse(){
var aa;
var bb;
alert("c");
}
function createOverlay(){
var overlaySubmit = function(e,v,m,f){
if(v === -1){
alert("Closing the prompt");
$.prompt.close();
return false;
} else if(v === 1){
dosomethingelse();
//blockPage();
return false;
}
};
var prompt = $.prompt(
"This is a test prompt",
{
opacity: 0.3,
buttons: {Add: 1, Cancel: -1},
position: {x: 300},
prefix: 'jqi',
submit: function(e,v,m,f){
blockPage();
try{
alert(g);
} catch (err){
alert("here");
}
overlaySubmit(e,v,m,f);
}
});
prompt.bind('promptsubmit',blockPage);
}
<!-- Ajax-->
$('#ajax').click(function(){
$.ajaxSetup({async:false});
$.ajax({
url: "test-server.txt",
success: function(response){
createOverlay();
return false;
},
error: function(){
return false;
}
});
});