2015-06-09 3 views
0
<div id="modalWindow"> 
    <button id="yes" class="k-button">Yes</button> 
    <button id="no" class="k-button">No</button> 
</div> 
<script> 
var wnd; 
$(document).ready(function() { 
    wnd = $("#modalWindow").kendoWindow({ 
     title: "Delete confirmation", 
     modal: true, 
     visible: false, 
     resizable: false, 
     width: 300 
    }).data("kendoWindow"); 

}); 

function DeleteItem(e) { 
    e.preventDefault(); 

    var grid = this; 
    var row = $(e.currentTarget).closest("tr"); 
    wnd.center().open(); 

    $("#yes").click(function() { 
     grid.removeRow(row); 
     wnd.close(); 
    }); 

    $("#no").click(function() { 
     wnd.close(); 
    }); 
} 
</script> 

Здравствуйте,окна подтверждения удаления

Я использую Telerik сетку с колонкой НАЗН.КНОПКИ, что открыть окно для подтверждения удаления соответствующей строки. Когда я нажимаю кнопку одной строки, и я подтверждаю, что она правильно работает. Когда я нажимаю кнопку одной строки, отмените удаление, а затем нажмите другую кнопку другой строки и отправьте удаление, чтобы удалить каждую строку сетки.

Что делать, чтобы решить эту проблему?

С уважением

+0

попробовать возвращение '' false' после wnd.close() 'в' no' нажмите !! –

+0

обеспечивают js-скрипку? –

+1

Каждый раз, когда вы открываете окно, вы переписываете событие 'click'. На самом деле он не восстанавливается, он повторно добавляет один и тот же обработчик событий. Это означает, что на втором событии 'click' вы будете вызывать дескриптор два раза, третий, три раза и так далее. –

ответ

0

Каждый раз, когда вы вызываете функцию DeleteItem вы устанавливаете обработчик для кнопки #yes для удаления конкретной строки. Даже если вы отмените и выберите другую строку, обработчик уже настроен и будет запускаться при следующем нажатии кнопки.

Чтобы избежать этого, вы должны удалить обработчик событий щелчка настроить ранее перед установкой нового:

function DeleteItem(e) { 
    e.preventDefault(); 

    var grid = this; 
    var row = $(e.currentTarget).closest("tr"); 
    wnd.center().open(); 

    $("#yes").unbind('click').click(function() { 
     grid.removeRow(row); 
     wnd.close(); 
    }); 

    $("#no").unbind('click').click(function() { 
     wnd.close(); 
    }); 
} 
+0

Он отлично работает! Спасибо огромное! – ArDevTeam

Смежные вопросы