1

ユーザーがajax-deleteクラスアイコンをクリックして削除され、削除プロセスを実行すると、削除後にグリッターメッセージが表示される理由を見つけようとしていますが、その後すぐに別のユーザーを削除すると、以前のグリッターメッセージが削除されますしかし、その 2 番目の削除では別のものは表示されません。なぜこれが考えられるのかについてのアイデアはありますか?

$.gritter.removeAll();編集:問題がコード行に属していることがわかりました。別の既存の通知がある場合、それは削除されますが、次の通知は追加されません。

ここで何をすべきか考えていますか?

var rowToDelete = null;
var basicTable = null;
var api_url = null;

$(document).ready(function() {});

$(document).on('click', '.ajax-delete', function(e)
{
    console.log(basicTable);
    e.preventDefault();
    //defining it like this captures and optimizing the need to cycle over the DOM more than once
    //in subsequent calls to the element specifically
    $elem = $(this);
    $parentElem = $elem.closest('tr');
    rowToDelete = $parentElem.get(0);
    api_url     = $elem.attr('href');
    runConfirmation($('td:eq(1)', $parentElem).text());
});

function runConfirmation(nameSting)
{
    $mymodal = $('#myModal');
    $('.modal-body p', $mymodal).html('Are you sure you want to delete this <strong>'+nameSting+'</strong>?');
    $mymodal.modal('show');
}

$('#myModalConfirm').on('click', function(e) {
    $.ajax({
        type: 'post',
        url: api_url,
        data: { _method: 'DELETE' },
        dataType: 'json',
        success: function(response) {
            $.gritter.removeAll();
            var className = 'growl-danger';
            if (response.status == "SUCCESS") {
                className = 'growl-success';
                basicTable.fnDeleteRow(basicTable.fnGetPosition(rowToDelete));
                rowToDelete = null;
                api_url     = null;
            }
            $.gritter.add({
                position: 'top-right',
                fade_in_speed: 'medium',
                fade_out_speed: 2000,
                time: 6000,
                title: response.title,
                text: response.message,
                class_name: className,
                sticky: false
            });
        }
    });

    $('#myModal').modal('hide');
});
4

1 に答える 1

4

次の行を置き換えます。

$.gritter.removeAll();

$('.gritter-item-wrapper').remove();

于 2015-07-07T09:01:38.900 に答える