#jquery-ui #confirmation
#jquery-пользовательский интерфейс #подтверждение
Вопрос:
Я хотел бы использовать пользовательский интерфейс jQuery для реализации подтверждения удаления. Я хочу использовать ссылку для запуска диалогового окна. Вот мой код:
<a href="http://www.google.com" class="delete">delete</a>
<script type="text/javascript">
$(function(){
$( "#dialog-confirm" ).dialog({
resizable: false,
height:140,
modal: true,
autoOpen: false,
buttons: {
"Okay": function() {
$( this ).dialog( "close" );
return true;
},
Cancel: function() {
$( this ).dialog( "close" );
return false;
}
}
});
$( ".delete" ).click(function() {
$( "#dialog-confirm" ).dialog( "open" );
return false;
});
});
</script>
Что я хочу сделать, так это то, что когда пользователь нажимает «Отмена», это ничего не делает. Но когда пользователь нажимает «Ок», тогда он продолжит переходить к www.google.com .
Однако, независимо от того, нажимаю «ок» или «Отмена», по-прежнему ничего не происходит. Есть идеи?
Ответ №1:
Даже если вы сделаете это:
$("a.delete").trigger("click");
Вы все равно не попадете в Google, потому что после вызова обработчиков jQuery запускает событие для объекта. Он вызывает собственные обработчики только для событий нажатия, если элемент не является ссылкой.
Вы могли бы сделать что-то вроде этого:
window.location.href = $("a.delete").attr("href");
Или у вас может быть скрытая ссылка на странице, например, такая:
<a href="http://www.google.com" class="hiddenDelete" style="display:none">delete</a>
Затем, нажав на кнопку «Открыть», вы могли бы сделать это:
$("a.hiddenDelete").trigger("click");