2014-02-27 153 views
-1

我正在使用fancybox作爲登錄表單。驗證成功後,我正在執行一些代碼並在afterClose回調中手動關閉fancybox。Fancybox獲取afterClose函數中單擊的錨點/元素的ID

問題是,如果關閉fancybox使用關閉按鈕[X],我的代碼在afterClose方法仍然運行。如何檢測我是否使用關閉[X]按鈕關閉fancybox?或者我如何追蹤目前的click?所以我可以決定是否運行我的代碼。

我已經嘗試了一些技巧,但仍然無法正常工作。

+0

你想在做什麼的'點擊元素的ID?並嘗試閱讀這裏,有什麼你需要http://fancybox.net/api的方法 – rockStar

回答

2

的問題是的fancybox(版本2.x)關閉按鈕不具有ID,它有而已,但是你可以一個click事件綁定到[X]按鈕,並設置你的病情,如果[X]接近按鈕是否被按下。

嘗試在一個變量捕獲的currentTargetclick事件,如:

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 

JSFIDDLE

0

試試這個,

console.log(this.element.context.id);