是否有一种干净的方法来绑定链接上的jquery帖子,并在执行帖子后加载链接,因为它应该正常工作?
这是我的代码:
$("a").bind('click', function(e){
// disable click while we make a post request
e.preventDefault();
// make post request
$.post('/blablabla/', { "datas" : mydatas } );
});
现在我禁用click以允许我的脚本进行POST,但是我想在调用POST并成功执行POST后将链接带到目标页面。我想我需要一个回调但是找不到实现它的好方法。
先谢谢,
答案 0 :(得分:4)
在.post
来电中添加成功功能,将window.location
更改为所点击链接的href
。
$( 'a' ).bind( 'click', function( e )
{
var url;
# disable click while we make a post request
e.preventDefault();
# get the url from the href attr
url = = $( this ).attr( 'href' );
# make post request
$.post(
'/blablabla/',
{
datas: mydatas
},
function()
{
# send browser to url
window.location = url;
}
);
} );
如果您希望即使POST失败也能进行重定向,您可以切换到使用.ajax()
并使用complete
选项:
$( 'a' ).bind( 'click', function( e )
{
var url;
# disable click while we make a post request
e.preventDefault();
# get the url from the href attr
url = = $( this ).attr( 'href' );
# make post request
$.ajax( {
url: '/blablabla/',
type: 'POST',
data: {
datas: mydatas
},
complete: function()
{
# send browser to url
window.location = url;
}
);
} );
答案 1 :(得分:0)
$("a").bind('click', function(e){
# disable click while we make a post request
e.preventDefault();
# Save the link url
var url = $(this).attr('href');
# make post request
$.post('/blablabla/', { "datas" : mydatas }, function() {
# Post successful
document.location(url);
} );
});
你应该以某种方式阻止“双击”。
答案 2 :(得分:0)
您可以在$.post
返回后重定向到网址的href。
$("a").bind('click', function(e){
# disable click while we make a post request
e.preventDefault();
var url = $(this).attr('href');
# make post request
$.post('/blablabla/', { "datas" : mydatas }, function(){
window.location = url;
});
});