Как сделать так, чтобы fancybox отображал «да / нет подтверждающее окно» с помощью href onclick? - PullRequest
2 голосов
/ 13 апреля 2011

я использую следующий код в качестве замены для полей подтверждения в javascript.

    function fancyAlert(msg) {
    jQuery.fancybox({
        'modal' : true,
        'content' : "<div style=\"margin:1px;width:240px;\">"+msg+"<div style=\"text-align:right;margin-top:10px;\"><input style=\"margin:3px;padding:0px;\" type=\"button\" onclick=\"jQuery.fancybox.close();\" value=\"Ok\"></div></div>"        });    }

function fancyConfirm(msg, callback) {
    var ret;
    jQuery.fancybox({
        'modal' : true,
        'content' : "<div style=\"margin:1px;width:240px;\">"+msg+"<div style=\"text-align:right;margin-top:10px;\"><input id=\"fancyConfirm_cancel\" style=\"margin:3px;padding:0px;\" type=\"button\" value=\"Cancel\"><input id=\"fancyConfirm_ok\" style=\"margin:3px;padding:0px;\" type=\"button\" value=\"Ok\"></div></div>",
        onComplete : function() {
            jQuery("#fancyConfirm_cancel").click(function() {
                ret = false;
                jQuery.fancybox.close();
            })
            jQuery("#fancyConfirm_ok").click(function() {
                ret = true;
                jQuery.fancybox.close();
            })
        },
        onClosed : function() {
            if (typeof callback == 'function'){ callback.call(this, ret); };
        }
    });
}

function fancyConfirm_text() {
    fancyConfirm("Ceci est un test", function(ret) {
        alert(ret)
    })
}

и я использую гиперссылку, подобную этой:

<a href="http://www.example.com/" onclick="fancyConfirm("Are you sure you want to delete?");">Test</a>

я застрял, просто ничего не будет отображаться?, я думаю, что это как-то связано с переменной обратного вызова, необходимой для fancyConfirm, но я не уверен, что это значит и как она применяется.

спасибо за вашу помощь.

Ответы [ 3 ]

2 голосов
/ 15 апреля 2011

Ошибка в вашем атрибуте ссылки. Вы не можете помещать двойные кавычки в двойные кавычки, не избегая их. Прямо сейчас ваш атрибут onclick просто: "fancyConfirm ("

Попытка:

<a href="http://www.example.com/" onclick="fancyConfirm('Are you sure you want to delete?');">Test</a>

Или:

<a href="http://www.example.com/" onclick="fancyConfirm(\"Are you sure you want to delete?\");">Test</a>
0 голосов
/ 08 июня 2012

Посмотрите на этот пост,

Javascript / Jquery Callback для Fancybox Да Нет Подтвердить

У автора необычной коробки есть немного другое решение, и оно работает.

0 голосов
/ 20 ноября 2011

Вам нужно это вместо:

<a href="#" onclick="fancyConfirm('Are you sure you want to delete?');return false;">Test</a>

Это должно работать. Хеш (#) не будет отображаться в URL, потому что return false; только сделает то, что в onclick.

Кроме того, я знаю, что это очевидно, но у вас на странице определены Fancybox и jQuery?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...