Если я правильно понял, что вы хотите:
- нажмите на ссылку на странице «A» указывает на веб-страницу «B»
- вместо того, чтобы перейти на страницу «B», показать лайтбокс с просьбой подтвердить, прежде чем покинуть страницу «A»
- , если посетитель произнесет «да», затем перейдите на страницу «B», в противном случае закройте лайтбокс и оставайтесь на странице " А»
Если все вышесказанное верно, то я бы установить содержание подтверждения о FancyBox внутри переменной, как:
var confirm = "<div class='confirm'>" +
"<p>You are about to leave this page.</p>" +
"<p>Are you sure you want to do that?</p><br />" +
"<a href='#' class='button yes'>Yes</a>" +
"<a href='#' class='button no'>no</a>" +
"</div>";
затем поймать значение атрибута щелкнули ссылку в href
другую переменную, используя afterLoad
Перезвони.
Затем связать click
к .button
селектора (в пределах confirm
переменных, как описано выше) в пределах afterShow
обратного вызова и решить, какие меры принять, либо:
- получил на страницу «B»
- близко FancyBox и остаться на странице "A"
Если предположить, что у вас есть ссылка, как это:
<a href="http://www.jsfiddle.net/" target="_blank" rel="nofollow" class="fancybox">Add</a>
...здесь код, чтобы сделать это:
jQuery(document).ready(function ($) {
$(".fancybox").fancybox({
type: "html", // because the content will be the "confirm" variable
modal: true, // avoids closing fancybox but clicking "yes" or "no"
afterLoad: function() {
link = this.href; // page "B" URL
this.content = confirm; // set fancybox content
},
afterShow: function() {
// bind click to both buttons yes and no
$(".button").on("click", function (event) {
if ($(event.currentTarget).hasClass("yes")) {
location.href = link; // go to page "B"
} else if ($(event.currentTarget).hasClass("no")) {
$.fancybox.close(); // close fancybox and stay in page "A"
}
});
}
});
});
См JSFIDDLE
EDIT (15 февраля 2014):
ОП сказал:
Я при попытке открыть ссылку в новом окне вкладок, когда нажимаем «да»
сделать так, изменить эту часть
if ($(event.currentTarget).hasClass("yes")) {
location.href = link; // go to page "B"
}
в этом
if ($(event.currentTarget).hasClass("yes")) {
//location.href = link; // go to page "B"
window.open(link); // open in a new tab
$.fancybox.close(); // optional, otherwise fancybox will remain open
}
Смотрите обновленный JSFIDDLE
Я пытаюсь сейчас открыть ссылку в новой вкладке, если нажать " yes " Я стараюсь использовать этот код в функции (событии) без успеха event.preventDefault(); event.stopPropagation(); window.open (this.href, '_blank'); – designbyme
@designbyme: см. Мой отредактированный ответ. – JFK
Он отлично работает. – designbyme