Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

jquery: вызвать dialog, а потом перейти на новую страницу

62K
25 марта 2012 года
Cyberatino
24 / / 06.03.2012
На странице есть ссылка
 
Код:
<a href="somepage.html" id="confirm">Link</a>
При клике на ссылку должен выводиться подтверждающий попап (красивый, поэтому не стандартный js, а jquery).
Тычем на "Ок" - переходим по ссылке
Тычем не "Cancel" - просто закрываем диалог.

У меня не получается осуществить логику, когда нажимаем "Ок". Переход происходит, но только после второго нажатия на линк. Никак не могу понять, что я упускаю.
Заранее благодарен за ответ.

Код:
$(document).ready(function () {
    var $dialog = $('<div></div>')
                    .html('Are you sure you want to deactivate this company?')
                    .dialog(
                             {
                                 autoOpen: false,
                                 title: 'About to deactivate a company'
                             });
    $dialog.dialog({ draggable: false });
    $dialog.dialog({ resizable: false });
    $dialog.dialog({ modal: true });
    var choice = false;
    $dialog.dialog({ buttons: { "Ok": function () { choice = true; $(this).dialog('close'); },
                                "Cancel": function () { choice = false; $(this).dialog('close'); }
    }
    });
    $('a#confirm').click(function () {
        if (choice == false) {
            $dialog.fadeIn();
            $dialog.dialog('open');
        }

        return choice;
    });
});
81K
26 марта 2012 года
alex4321
1 / / 26.03.2012
Код:
function link_click(url)
{
    div = document.createElement('div');
    div.innerText="<message>";
    $(div).dialog({
        buttons:{
            "OK": function(){
                window.location.href=url;
                $(div).dialog("close");
                div.parentNode.removeChild(div);
            }
            "Cancel": function(){
                $(div).dialog("close");
                div.parentNode.removeChild(div);
            }
        }});
}
62K
26 марта 2012 года
Cyberatino
24 / / 06.03.2012
alex4321, твой код работает на вид так: выводится попап, затем, не дожидаясь селекта, происходит переход. По-видимому, надо чтобы функция вернула тру или фолс. В общем я подправил код. Теперь работает.

Подправил ссылку:
 
Код:
<a href="" id="confirm" onclick="clickHandle('somepage.html')">Link</a>
Подправил обработчик:

Код:
function link_click(url)
{
    div = document.createElement('div');
    div.innerText = "<message>";
    var choice = false;
    $(div).dialog({
        modal: true,
        resizable: false,
        draggable: false,
        buttons: {
            "OK": function () {
                choice = true;
                window.location.href = url;
                $(div).dialog("close");
                div.parentNode.removeChild(div);
            },
            "Cancel": function () {
                $(div).dialog("close");
                div.parentNode.removeChild(div);
            }
        }
    });
    return choice;
}
function clickHandle(address) {
        $(this).click(link_click(address));
    }
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог