Javascript JQuery点击绑定和Facebook JS SDK的怪异
我有一个应用程序,它使用FB javascript SDK通过ajax加载图片。这一切都是可行的,但当用户点击图片并成功上传时,我想取消点击图片的绑定,这样用户就无法再次上传 函数如下所示:Javascript JQuery点击绑定和Facebook JS SDK的怪异,javascript,jquery,ajax,facebook,click,Javascript,Jquery,Ajax,Facebook,Click,我有一个应用程序,它使用FB javascript SDK通过ajax加载图片。这一切都是可行的,但当用户点击图片并成功上传时,我想取消点击图片的绑定,这样用户就无法再次上传 函数如下所示: function postImage(fbimgurl, token, obj) { obj.click(false); //I think this should turn off clicking but it does not $.ajax({ //ajax code here.
function postImage(fbimgurl, token, obj) {
obj.click(false); //I think this should turn off clicking but it does not
$.ajax({
//ajax code here. This works fine
}
当页面加载时,Facebook连接成功时,它将被初始绑定:
FB.getLoginStatus(function (response) {
if (response.status =='connected') {
var fbaccesstoken = response.authResponse.accessToken;
$('.pic').each(function(){
var picurl = $(this).attr('fullurl');
$(this).on('click', function() { postImage(picurl, fbaccesstoken, $(this)) });
});
}
我怀疑在我上传图像后,会再次调用“connected”响应,因此它会重新绑定positmage函数。我说得对吗?我曾尝试将此函数绑定到脚本中其他地方的pic div,但只有当我将其放在Facebook响应中时,它似乎才起作用,可能是因为访问令牌或其他一些我不了解的异步内容。当函数成功时,解除绑定此对象的最佳方法是什么,这样就无法重新单击它?您可以使用事件对象上的目标从单击处理程序函数内部解除绑定
$('.pic').each(function(){
var picurl = $(this).attr('fullurl');
$(this).on('click', function( event ) {
postImage(picurl, fbaccesstoken, $(this));
$(event.target).unbind('click');
});
});
我通过在函数中加入obj.off()找到了答案。由于某些原因,使用“单击”进行此操作失败。奇怪。不幸的是,这也不起作用。我只能猜测facebook connect会重新绑定click事件处理程序。这令人沮丧。