こんにちは、私はfancyBoxが内部から開いているときに閉じることができるようにしたいです。
私は以下を試しましたが、役に立ちませんでした:
function closeFancyBox(html){
var re = /.*Element insert complete!.*/gi;
if( html.search( re ) == 0 ){
$.fancybox.close();
//alert("foo");
}
}
fooはダイアログで開きますが、閉じません。ヒントはありますか?
これを試してください:parent。$。fancybox.close();
Fancybox APIドキュメント を参照してください。
- 他の要素からFancyBoxを閉じるにはどうすればよいですか? ?
OnClickイベントで
$.fn.fancybox.close()
を呼び出すだけです
したがって、fn
を追加することができます。
ファンシーボックスを閉じたい場合は、閉じれば十分です。
$('#inline').click(function(){
$.fancybox.close();
});
.fnを入れても意味がありません。プロトタイプを参照します。
あなたがする必要があるのは$ .fancybox.close();です。
問題は、jsから別のエラーが発生している可能性があることです。
画面にエラーがありますか?
fancyboxとjqueryは最新リリースですか? jqueryは現在1.4.1にあり、fbは1.3にあります
Fancybox内にリンクを配置して、その中にその関数を配置してみてください。
あなたはおそらくそれを読んでいたでしょうが、いずれにしても、 http://fancybox.net/api
おそらく必要なことの1つは、それが何であるかを理解するために各部分を分離することです。
閉じるボタンのIDを取得し、そのIDでクリックイベントを呼び出すことで、fancyboxを閉じることもできます。
<input type='button' value='Cancel' onclick='javascript:document.getElementById("fancybox-close").click();' />
わたしにはできる!
私は長年同じ問題を抱えていましたが、以下のコードで解決策を得ました。使ってください
parent.jQuery.fancybox.close()
古いスレッドのビットが...
実際、withinからウィンドウを閉じる方法に関する元の質問への答えは、クリックイベントが要素にアタッチされていないという事実と関係があると思われます。 clickイベントがdocument.readyに添付されている場合、fancyboxが新しいウィンドウを作成するときにイベントは添付されません。
新しいウィンドウをクリックしたら、クリックイベントを再適用する必要があります。おそらくこれを行う最も簡単な方法は、onComplete機能を使用することです。
これは私のために働く:
$(".popup").fancybox({
'transitionIn' : 'fade',
'transitionOut' : 'elastic',
'speedIn' : 600,
'speedOut' : 400,
'overlayShow' : true,
'overlayColor' : '#000022',
'overlayOpacity' : 0.8,
'onComplete' : function(){$('.closer').click(function(){parent.$.fancybox.close();})}
});
実際には、「クリック」または「バインド」ではなく「ライブ」を少し考えた後でも同様に機能する可能性があります。
代わりにこれを使用して閉じます:
$.fn.fancybox.close();
Fancyboxのソースコードから判断すると、それは彼らが内部でそれを閉じるのを処理する方法です。
$.fancybox.close()
を、関数またはコールバックで、トリガーする場所に追加し、ajax呼び出しの終わりに!
うん.
私は最終的に使用しました:
<script>parent.$("#fancy_close").click();</script>
私が持っているfancyboxのバージョンには、私が呼び出すための$ .fancybox.close()関数がないと思います:(
参考までに、PHPでの処理が完了したため、ページでファンシーボックスを閉じたいだけです。
インラインタイプの解決策を見つけるために私のような時間を費やした人向け:window.setTimeout(function(){$。fancybox.close()}、10);
これに苦労した後、$をjQueryjQuery.fancybox.close()
に置き換えるだけで機能するソリューションを見つけ、onClickのインラインスクリプトにしました。親から呼び出すことができるかどうかを確認しようとしています
はい、Virtuemartでは、クリックではリダイレクトできないため、ボタンではなく、CLOSe-continueショッピングである必要があります。
ファンシーボックスでファンシーボックスを閉じるには、ファンシーボックスを閉じる関数にsetTimtoutを作成する必要があります
function close_fancybox(){
$.fancybox.close();
}
setTimeout(close_fancybox, 50);
Iframe内では-parent。$。fancybox.close();