1

次のようにテンプレートを定義しています。

 $.template('aTemplate',
  '<div id="someid" class="abc">' +
   ....
  '</div>'
);

この div を他の要素とインラインにしたい (どこに配置しても)。また、この div を非表示にして (DOM に追加するとき)、他のアクション (ユーザー クリック) で表示されるようにします。

インラインで非表示にするために、次のcssを定義します

.abc {
  display: inline-block;
  visibility: hidden;
}

そして、いくつかのアクションで、私は持っています

 $('#someid').show()

しかし、うまくいかないようです。何を修正できるかについての提案はありますか?

4

1 に答える 1

0

あなたの問題は$.show()設定されますdisplay:inline-block

ドキュメントから:
http://api.jquery.com/show/
一致した要素は、アニメーションなしですぐに表示されます。これは .css('display', 'block') の呼び出しとほぼ同じですが、表示プロパティが最初の状態に復元される点が異なります。要素の表示値が inline の場合、非表示にしてから表示すると、再びインラインで表示されます。

div で DOM 内の位置を維持したい場合は、不透明度を 0 に設定してみてください。

.abc {
  display: inline-block;
  opacity: 0;
}

次に呼び出します。

$('#someid').css('opacity','1');
于 2013-07-13T02:26:45.123 に答える