0

ウェブサイトのフッターにニュースレターの申し込みフォームがあります。サイドバーには、サインアップフォームのdivをコンテンツとして使用してfancyboxウィンドウをトリガーするリンクがあります。

予想どおり、これによりフォームがフッターから消え、ライトボックスにポップアップ表示されます。

ライトボックスを閉じると、元の状態に戻ります。非常に厄介な例外が1つあります。それは、追加の。でラップされていdivます。ライトボックスウィンドウを開閉する回数が増えるほど、ライトボックスウィンドウdivが蓄積されます。

さて、私は通常、fancyboxが非表示のdiv(フォームの2番目のコピー)からコンテンツを取得するだけですが、WordPress(mailchimp)のプラグインによって生成され、#idまたはフォーム名を変更することはできません。

したがって、これはバグまたはfancyboxの機能のいずれかです。私は99.9%、私が「間違った」ことをしているのではないと確信しています。ラップされたdivを削除する方法はありますか?#email_signupからdivを削除するjqueryスニペットを入れてみることができるとonClosed思います...しかし、おそらく明日までそれを行うのを待ちます。

関連するコード:

js

jQuery("#signMeUpBox a").fancybox({width:250});

html

<a href="#email_signup"><img src="...." /></a>

いくつかのファンシーボックスを開いたり閉じたりした後のフッターコードは次のとおりです。

<div style="width:auto;height:auto;overflow: auto;position:relative;">
<div style="width:auto;height:auto;overflow: auto;position:relative;">

    <div id="email_signup" style="">
        <h1 style="">email signup</h1>
        <div id="mc_signup" style="">
            <form method="post" action="#mc_signup" id="mc_signup_form" style="">
                <!-- ... -->
            </form><!-- /mc_signup_form -->
        </div><!-- /mc_signup_container -->
    </div>

</div>
</div>

編集

状況を説明するためにjsfiddleをまとめました。 http://jsfiddle.net/UD9P9/

4

1 に答える 1

1

inlineはい、コンテンツ使用時の既知のバグです。回避策として、次のようにコールバックを追加しonCleanupます。

jQuery("#signMeUpBox a").fancybox({
 "width":250,
 "onCleanup": function() {
  var myContent = this.href;
  jQuery(myContent).unwrap();
 }
});

詳細については、http : //groups.google.com/group/fancybox/browse_thread/thread/fab7b6d81a173b33をご覧ください。

: 回避策は v1.3.x 用です。このバグは v2.x には存在しません。

于 2012-06-28T21:52:24.817 に答える