jQuery UI удалить функцию подтверждения обратного вызова - PullRequest
0 голосов
/ 05 мая 2011

Я хочу использовать jQuery UI для реализации подтверждения удаления. Я хочу использовать ссылку для запуска диалога. Вот мой код:

<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 Ответ

1 голос
/ 05 мая 2011

Даже если вы сделаете это:

$("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");
...