maa*_*n81 1 javascript jquery callback
虽然我可以找到有关如何重定向页面的帮助,但我找不到符合我情况的一个.
在重定向到表单的"action"链接之前,我想淡出弹出窗口 - 里面有一个表单.
我在单独的函数中有淡出,因为该函数更复杂并且被调用次数.
我的jquery代码:
$('form').submit(function(e){
function(e){
hidePopup()
,function(e){
window.location.href = $('form').attr('action');
};};
});
//hiding popup
function hidePopup(){
$(".popup").fadeOut("slow");
};
Run Code Online (Sandbox Code Playgroud)
fadeOut接受回调函数作为第二个参数.完全被淘汰后,该回调即被完成.所以只需使用:
$(".popup").fadeOut("slow", function(){//Executes after faded out//});
Run Code Online (Sandbox Code Playgroud)
在你的代码中,我建议你重写你的hidePopup功能
function hidePopup(callback){
$(".popup").fadeOut("slow",callback);
};
Run Code Online (Sandbox Code Playgroud)
并执行它
hidePopup(function(){
window.location.href = $('form').attr('action');
});
Run Code Online (Sandbox Code Playgroud)
更新您可以使用以下代码检查是否已通过有效回调:
function hidePopup(callback){
if (typeof(callback) =='function')
$(".popup").fadeOut("slow",callback);
else
$(".popup").fadeOut("slow");
};
Run Code Online (Sandbox Code Playgroud)
这是一个强大的检查,可以保证你已经传递了一个有效的回调(好吧,因为JS不是严格类型的语言,你不能确定这个函数有正确的签名,但那不在那个问题之内).
如果你完全确定你会永远通过callback或者undefined你懒得足够希望输入20个字符,那么你可以简化if (typeof(callback) =='function')为if (callback).它会检查你是否通过了某些事情.但这不是一个好习惯(但很受欢迎).:)
更新2: length函数的属性返回其参数的数量.见MDN
| 归档时间: |
|
| 查看次数: |
497 次 |
| 最近记录: |