89

私は Twitter Bootstrap を使用していますが、jQuery 関数は仕様のみを削除するため、 jQuery show()orfadeIn()は class でマークされた DOM 要素を表示しないことに気付きました。ただし、はまだ に設定されています。hiddendisplay: nonevisibilityhidden

これを回避する最善の方法は何だろうか?

  1. hidden要素のクラスを削除します
  2. 可視性プロパティを変更する
  3. 自分のcssで隠しクラスを上書きする

特に、これを jQuery と css のどちらで修正するのが良いのか、またその理由を知りたいです。

4

6 に答える 6

21

これにより、目に見えない要素がフェードインし、クラスが削除されます

$('#element.hidden').css('visibility','visible').hide().fadeIn().removeClass('hidden');

http://jsfiddle.net/7qxVL/

要素を非表示にする (つまり、スペースを占有する) 必要がない場合は、.hidden を再定義することをお勧めします (ローカル css では、ブートストラップ ソースを変更しないでください。ローカルの LESS ファイルではさらに良いことです)。

于 2013-01-30T17:54:12.647 に答える
5

私も同じ問題を抱えていました。このパッチを使用しました:

$(function() {
  $('.hidden').hide().removeClass('hidden');
});

次に、アプリケーションが新しい要素を生成し、それらを追加/先頭に追加するため、別の問題が発生しました。私が最終的にやったことは、私が行う新しい要素を生成した後です:

var newEl = ...;
$(newEl).find('.hidden').hide().removeClass('hidden');
于 2014-02-03T10:03:00.240 に答える
4

これは機能しますが、最初の答えを試して、クラスを.collapse.

.toggleClass('hidden')
于 2016-02-06T17:09:08.450 に答える