1

私はこの問題を抱えた最初の人ではないと確信していますが、解決策を見つけることができませんでした.

私は最も単純な形式でShadowboxを使用しています。のようなリンクで画像ポップアップを行うだけです

Click <a href="myimage.png" rel="shadowbox">here</a> to view the image.

これは問題なく動作しますが、非常に奇妙な副作用が 1 つあります。リンクをクリックすると、ページ上のフォームのすべての選択入力 (ドロップダウン ボックス) が消えます。Firebug を少し調べてみると、<select>タグにプロパティを与えるために CSS が変更されていることがわかりますvisibility: hidden。画像を閉じると、入力が再び表示されます。

当然のことながら、これはブラウザー間で一貫して発生します。

入力はすべて再表示されるので、おそらくそのままにしておくことができます。ただし、(たとえば) 画像を読み込めず、スクリプトで表示できない場合、入力は非表示のままになります。また、それは奇妙に見え、私をバタバタさせています。:D

関連する場合と関連しない場合があるその他の要因:

  • 私は過去に Shadowbox をほとんど使ったことがなく、恥ずかしいほど明白な何かを見落としている可能性が非常に高いです。
  • 私のページとそのフォームはCakePHPによって生成されます。
  • ページは jQuery を使用し、Shadowbox は jQuery アダプターを使用しています。
  • 消失入力には属性がありません。classそれらにはidCakePHP によって生成された属性がありますが、これらの名前は私のアプリケーションに非常に固有のものであり、CSS の衝突を引き起こす可能性はほとんどありません。
  • 私が知る限り、すべての選択入力が消え、ページ上の他の要素 (入力など) はまったく影響を受けません。(入力に関連付けられたラベルも影響を受けません。)
  • バージョン: Shadowbox 3.0.3、jQuery 1.4.2、CakePHP 1.3
4

1 に答える 1

3

これはおそらくシャドウボックスのセミバグです。select タグは、IE の一部のバージョンでは Windows ネイティブ コントロールを使用してレンダリングされ、z-index を持つ他の要素の「上」に常に表示されるため、非表示になっています。これは明らかに ShadowBox の問題であるため、解決策は、ボックスを表示しながらそれらを非表示にすることです。Shadowbox は明らかに面倒なブラウザに対してのみこれを行うべきですが、私は彼らがそれらを常に非表示にするというより一般的なアプローチを取っていると思います.

于 2011-04-11T22:06:48.123 に答える