0

以下のコードでは、jqueryを使用してデータモード値を更新しています。その値はサーバーから取得されます。

したがって、「ブロック」の場合、クリックすると、サーバーですべてがうまくいくと、「ブロック解除」になります。

'Unblock'に更新されます。これは、Mozillaの開発ツールを使用して確認できます。しかし、もう一度クリックすると、古い値が表示されます。新しいものではありません。

私はここで何が間違っているのですか、そしてどうすればこれを正しく行うことができますか?

<span class="mod-user" data-mode="Block" data-handle="3">Block</span>

私のJquery:

$('.mod-user').live('click', function() {

    var mode        = $(this).data("mode");
    var userHandle  = $(this).data("handle");
    var handle  = 'mode='+mode+'&handle='+userHandle;

    if(handle){

            // ajax call
            $.ajax({
                type: "GET",
                 url: "/modset/",
                data: handle,
            dataType: "json",
               cache: false,

                beforeSend: function(html) {

                    $('.mod-user[data-handle="'+userHandle+'"]').empty();
                    $('.mod-user[data-handle="'+userHandle+'"]').html('Wait..');

                    },
               success: function(preData){

                    if (preData["success"] == false){

                        delete preData["success"];


                    }else if (preData["success"] == true)
                    {

                        delete preData["success"];

                        $(this).html('');

                        alert(preData['response']);

                        $('.mod-user[data-handle="'+userHandle+'"]').html(preData['response']);
                        $('.mod-user[data-handle="'+userHandle+'"]').attr('data-mode',preData['response']);


                    }else{
                        alert('Error');
                    }



              },
            });
            }
        return false;
    });
4

1 に答える 1

0

この行で:

$('.mod-user[data-handle="'+userHandle+'"]').attr('data-mode',preData['response']);

.attr()を使用しています。全体を通して.data()を使用する必要があります。

于 2012-12-31T07:10:27.113 に答える