1

次のコードでは、どのように$(this).parents('#friendRequest').remove();ajax 成功コールバック関数を使用$(this)し、最初の行でクリック イベントのセレクターを取得するために使用しますか?

jQuery(".notyAcceptFriendRequest").on('click', function() {
    notyId = jQuery(this).attr("notyIdOne"); // pull in the id of the current selected notification
    userProfilesUserId = $('#requestAlert').attr('userProfilesUserId'); // pull in the id of the current selected user profile id
    if (notyId == userProfilesUserId) { // if notification id is the same as the user profiles id, do the following
        $("#requestAlert").replaceWith('<span class="font1">You two are now friends</span>'); // the user profile friend requester will be replaced with the text
        $(this).parents('#friendRequest').remove(); // find the '#friendRequest' id from the parent elements and fade it out
    } else if (notyId != userProfilesUserId) {
        /* the below will execute when the user
         * clicks the 'Add' button and he/she is
         * not on the targeted users page
         */
        $.ajax({
            type: "POST",
            dataType: "JSON",
            url: "<?=base_url()?>index.php/reguserDash/acceptFriendNoty",
            data: {notyId: notyId},
            json: {friendshipCaneled: true},
            success: function(data) {
                if(data.acceptNotyFriendSuccess == true) {
                    $(this).parents('#friendRequest').remove();
                }
            }
        })
    }
});
4

1 に答える 1

5

thisthisコールバック内はハンドラー内と同じではありません。

ローカル変数に格納thisしてから、その変数をコールバックで使用する必要があります。

于 2012-10-03T02:11:50.660 に答える