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. 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)) });
});
}
画像をアップロードした後、「接続済み」応答が再度呼び出されていると思われるため、postImage 関数が再バインドされます。私は正しいですか?この関数をスクリプトの別の場所にある pic div にバインドしようとしましたが、おそらくアクセス トークンまたはその他の理解できない非同期処理のために、Facebook 応答内に配置した場合にのみ機能するようです。関数が成功したときにこのオブジェクトをアンバインドして再クリックできないようにする最善の方法は何ですか?