2009-05-26 32 views
8

私はfancyboxに問題があります。
ファンシーボックスを開いたときに実行される関数を書きたいと思います。どのようにしていつ機能を呼び出すのですか?Jquery - fancyboxとコールバック

例:

function myFunc() { 
    alert("Opened!"); 
} 

$('.content a').fancybox({ 
    'hideOnContentClick': false , 
    'callBackOnShow': myFunc(), // This not working! It call function when page is loaded 
    'frameWidth': 920, 
    'frameHeight': 530 
}); 
+3

ここに来て、新しいバージョンのFancyboxのコールバックを求めている場合は、「onComplete」属性をチェックします。 – AsTeR

+6

fancyboxバージョン2以降では、afterLoadに変更されました。 http://fancyapps.com/fancybox/#docs – coderates

答えて

24

代わりのmyFunc()使用myFunc。 javascriptでは、括弧(および/またはargs)を持つ関数は、それを呼び出すことを意味します。それらのない関数名あなただけ(fancyboxがあなたから欲しいものはおそらくです)、その関数への参照

2

をしたい意味は次のようになります -

function myFunc() { 
    alert("Opened!"); 
} 

$('.content a').fancybox({ 
    'hideOnContentClick': false , 
    'callBackOnShow': myFunc, // no brackets 
    'frameWidth': 920, 
    'frameHeight': 530 
}); 

それとも、あなたは無名関数を作ることができます。.. 。

$('.content a').fancybox({ 
    'hideOnContentClick': false , 
    'callBackOnShow': function() { alert('hello'); }, 
    'frameWidth': 920, 
    'frameHeight': 530 
}); 
2

実際に、ドキュメントをチェックするには、あなたのオプションリストのタイプミスを持っている...

あなたはcallBackOnShowを持っているが、それはする必要があります0(小文字のb)のオプションは大文字と小文字を区別し、 とmyFuncというのがないカッコあるとして、あなたはオプションとしての機能を渡したいと、それを呼び出すNOT B

2
'callbackOnShow': myFunc 

下部ケース。

10

これはそれを動作させるためにどのように最新の方法

$("#element").fancybox({ 
    onStart  : function() { 
     return window.confirm('Continue?'); 
    }, 
    onCancel : function() { 
     alert('Canceled!'); 
    }, 
    onComplete : function() { 
     alert('Completed!'); 
    }, 
    onCleanup : function() { 
     return window.confirm('Close?'); 
    }, 
    onClosed : function() { 
     alert('Closed!'); 
    } 
}); 
+0

スーパーポスト、Tankx – Hearaman

+2

元のコールバックがうまくいかなかったのはなぜだろうか?http://fancyapps.com/fancybox/#docs – mirelon

9

の作品はafterShowまたはbeforeShowを使用している:

$("a#registrace").fancybox({ 
    beforeShow : function() { 
    alert('its working!'); 
    validate_reg_form(); 
    } 
}); 

私はAJAXを通じて登録フォームをロードしていると私は、フォームの検証を有効にする必要があります。両方の場合(前と後)、コンテンツは既に読み込まれています。

0

タイトルに「Jquery - fancybox and callback」と書かれているように、タブコールバックの下にあるfancybox 2プラグインのコールバックオプションの完全なリストがあります。

http://fancyapps.com/fancybox/#docs

あなたは、新しいプラグインは、より多くのコントロールで、より優れた機能を備えていて、多分fancybox2にアップグレードし、古いfancyboxを使用している場合。