-1

私のページは、ajaxを介して更新せずに編集および更新できるデータベース値をループします。ロジックは正常に機能しますが、成功メッセージを正しく動作させることができません。今のところ、メッセージはクラス.statusのすべてのdivで点滅します... prevAll、parents、closestなどを試しましたが、クリックされたフォームにのみ表示されるメッセージを取得できません。

$(document).ready(function() {      
    $(".save").click(function (e) {         
        var content = $(this).prevAll('.editable').html();  
        var item = $(this).prevAll('.item').html(); 

    $.ajax({
        url: 'save.php',
        type: 'POST',
        data: {content: content, item: item},               
        success:function (data) {
            if (data == '1'){
                $(".status")
                .addClass("success")
                .html("Data saved successfully")
                .fadeIn('fast')
                .delay(3000)
                .fadeOut('slow');   
            }
         }
     });        
     });
});

フォームの構造(ループしていることに注意してください)。

<div id="wrap">
    <div class='status'></div>
    <div id='content'>
        <div class='editable' contentEditable='true' ></div>
        <div class="item"></div>    
        <button class="save" style="display:none">Save</button>
    </div>
</div>
4

1 に答える 1

1

.statusこれは、どちらを点灯するかを指定していないためです。

これがフィドルです。

PS:jsiddleで動作するようにいくつかのコードを変更したので、適応する必要があります。

PS2:IDの代わりにクラス名を使用することをお勧めします。これは、クラス名が繰り返され、IDが一意である必要があるためです。

$(document).ready(function() {      
        $(".save").click(function (e) {         
            var content = $(this).prevAll('.editable').html();  
            var item = $(this).prevAll('.item').html();
            var statusItem = $(this).parents('.wrap').find('.status');
        $.ajax({
            url: '/echo/html',
            type: 'POST',
            data: {content: content, item: item},               
            success:function (data) {
                //if (data == '1'){
                     statusItem
                    .addClass("success")
                    .html("Data saved successfully")
                    .fadeIn('fast')
                    .delay(3000)
                    .fadeOut('slow');   
                //}
             }
         });        
         });
    });
于 2012-10-11T01:19:14.833 に答える