我正在使用fancybox作爲登錄表單。驗證成功後,我正在執行一些代碼並在afterClose
回調中手動關閉fancybox。Fancybox獲取afterClose函數中單擊的錨點/元素的ID
問題是,如果關閉fancybox使用關閉按鈕[X]
,我的代碼在afterClose
方法仍然運行。如何檢測我是否使用關閉[X]
按鈕關閉fancybox?或者我如何追蹤目前的click
?所以我可以決定是否運行我的代碼。
我已經嘗試了一些技巧,但仍然無法正常工作。
我正在使用fancybox作爲登錄表單。驗證成功後,我正在執行一些代碼並在afterClose
回調中手動關閉fancybox。Fancybox獲取afterClose函數中單擊的錨點/元素的ID
問題是,如果關閉fancybox使用關閉按鈕[X]
,我的代碼在afterClose
方法仍然運行。如何檢測我是否使用關閉[X]
按鈕關閉fancybox?或者我如何追蹤目前的click
?所以我可以決定是否運行我的代碼。
我已經嘗試了一些技巧,但仍然無法正常工作。
的問題是的fancybox(版本2.x)關閉按鈕不具有ID
,它有類而已,但是你可以一個click
事件綁定到[X]
按鈕,並設置你的病情,如果[X]
接近按鈕是否被按下。
嘗試在一個變量捕獲的currentTarget
的click
事件,如:
var eTarget;
jQuery(document).ready(function ($) {
$(".fancybox").fancybox({
afterShow: function() {
// bind a click event to fancybox close button
// set the value of the currentTarget to the eTarget variable
eTarget=""; // reset variable
$(".fancybox-close").on("click", function (event) {
eTarget = event.currentTarget;
});
},
afterClose: function() {
// validate the eTarget variable
if ($(eTarget).hasClass("fancybox-close")) {
// yes, we are closing fancybox with the [X] button
// so close it, do nothing and return
console.log("fancybox was closed using the X button");
return;
}
// only if fancybox wasn't close using the X button
// executed my validation and manual close
console.log("perform form submission and validation here")
}
});
}); // ready
試試這個,
console.log(this.element.context.id);
你想在做什麼的'點擊元素的ID?並嘗試閱讀這裏,有什麼你需要http://fancybox.net/api的方法 – rockStar