2013-03-01 8 views
11

私はFancyboxを破壊しようとしています。私はdocumentationでそれを行う方法が見つかりませんでした。それが初期化された後にそれを破壊する方法?ファンシーボックスを破壊するには?

これは動作しません:

$("a").unbind('fancybox').unbind('click'); 

テストコード:http://jsfiddle.net/martinba/yy3cw/2/

私は現在のバージョン2.1.4を使用しています。

.unbind('click.fb')をfancyboxのバインドを解除する:

+0

あなたは破壊するとはどういう意味ですか?これらすべてを隠したいですか? – Manoj

+0

私はそれを必要とする動作に戻す必要があります。リンク ...をクリックすると、ブラウザが開きます。いいえ、ファンシーボックスの内側のウィンドウ、ちょうどそこにjavascriptがありません。 – Martin

答えて

13

あなたはdocumentからfb-start名前空間の下にイベントをバインド解除する必要がfancyboxバインド解除するには:

$(document).unbind('click.fb-start'); 

もののを、開発者がそのように非自明作られ、なぜ、私は知りません。

http://jsfiddle.net/dfsq/yy3cw/16/

+0

見た目はうまくいきます。ありがとう! – Martin

+0

画像ギャラリー( )のように、ページに複数のfancyboxインスタンスがある場合は、特定の画像のみをアンバインドする方法はありますか? – webdevbyjoss

+0

@Passerあなたのコードで新しい回答を投稿することをお勧めします。 – dfsq

2

呼び出すようにしてください。

のような:

$('.group').unbind('click.fb') 
+0

不運にも、うまくいきません。ここにあります:http://jsfiddle.net/martinba/yy3cw/11/ initボタンをクリックし、破壊してください。 "ファンシーデビル"はまだそこにある。 – Martin

+0

これは私のために働いた。 'click.fb-start'はしませんでした。私はそれがFBのバージョンに依存すると思う。 – igasparetto

+0

これはfancybox 1.34でうまくいくようです。 – Hutch

0

それは先にここで述べたように:$(document).unbind('click.fb-start'); しかし、あなたはまた、fancyboxのinitの呼び出しには、このオプションを追加する必要がありますlive:false

1

あなたが実行することにより、すべての化粧箱のバインドを解除することができます

$(document).unbind('click.fb-start'); 

特定のセレクタのバインドを解除する必要がある場合は、削除を解除できます。

var selector = 'a.my-fancy-box'; 
selector = selector + ":not('.fancybox-item, .fancybox-nav')"; 
$(document).undelegate(selector, 'click.fb-start'); 

または代わり:

// Bind 
$('a.my-fancy-box').fancybox({live: false}); 

// Unbind 
$('a.my-fancy-box').unbind('click.fb'); 
関連する問題