2012-07-12 86 views
1

我試圖插件自定義操作看中關閉按鈕,但什麼也沒發生,這是爲什麼?的fancybox 2.0.6關閉按鈕自定義動作

我的代碼

$(".fancybox-close").click(function(){ 
    $("#main-menu-nav a").removeClass("active"); 
    $("footer").toggleClass("down", 400); 
}); 

回答

1

Fancybox v1提供了一個onClosed方法的fancybox關閉時,這就是所謂的API。
Fancybox v2提供了afterClose方法的fancybox關閉時,這就是所謂的API。

Tips & Tricks頁面必須使用這個公共回調方法,如下圖所示:

$("#tip5").fancybox({ 
    'scrolling'  : 'no', 
    'titleShow'  : false, 
    'afterClose'  : function() { 
     $("#main-menu-nav a").removeClass("active"); 
     $("footer").toggleClass("down", 400); 
    } 
}); 

使用這種方法來調用您的自定義操作將確保當覆蓋點擊關閉的fancybox調用它們,因爲按鈕本身沒有被點擊。

狀態更新:每西蒙的這個網頁上回答,請注意他的觀點,你可能與switch parameter以來的400價值.toggleClass();方法的問題可能不會做你期待什麼,除非(作爲註釋州) ,您使用的是jQuery UI

+1

在facybox 2 onClosed改爲afterClose,做工精細THX傢伙 – gidzior 2012-07-12 09:05:26

+0

** + 1 **謝謝你讓我知道了不同的​​API可用。我改變了你的問題標籤來反映'fancybox-2'。乾杯! – arttronics 2012-07-12 09:16:38

4

的fancybox有所回調OnClose中,你可以在它的參數定義

請儘量使用:

$("#TARGET_ELEMENT").fancybox({ 
'OTHER_PARAM':'OTHER_PARAM_VALUE', 
'onClosed': function() { 
    alert("FIRED_ON_CLOSE"); 
    } 
}); 

編碼愉快!

+0

** + 1 **爲成爲第一個與正確答案迴應。乾杯! – arttronics 2012-07-12 09:00:34

1

$("footer").toggleClass("down", 400);是無效的jQuery代碼,toggleClass的第二個參數必須是一個布爾http://api.jquery.com/toggleClass/

+1

閱讀本http://docs.jquery.com/UI/Effects/toggleClass – gidzior 2012-07-12 08:51:59

+0

** + 1 **爲正確答案,這是無效的jQuery如果不使用jQuery UI的。這就是說,** + ** 1用於消息評論閃耀光僅當* jQuery的UI *被使用的持續時間的值被識別。例如:jQuery'.load();'也有兩種方法!根據參數,它可以成爲*** AJAX方法***。乾杯! – arttronics 2012-07-12 08:59:34