0

jQuery 1.4.2 では、:hidden フィルターは非表示の要素を除外していませんが、show() を呼び出して表示できるようにしました。フィルターは、まだ非表示であると想定します。

これはバグですか、それとも何か不足していますか? 次のコードを検討してください。

$("td.ms-authoringcontrols > span[id*='_ParallelApprovers']:hidden:first").css("display")
"none"
$("td.ms-authoringcontrols > span[id*='_ParallelApprovers']:hidden:first").show()
Object
$("td.ms-authoringcontrols > span[id*='_ParallelApprovers']:hidden:first").css("display")
"inline" // ?? Let me scratch my head...
$("td.ms-authoringcontrols > span[id*='_ParallelApprovers']:hidden:first").is(":hidden")
true //element with "display:inline", visible in browser, but yet it is hidden

:hidden フィルタが使用されているため、「インライン」ではなく「なし」が期待されます。

それが行うことは、オブジェクトの配列から最初の隠し要素を選択することです。これらのコード行を呼び出すたびに、次の隠し要素 (先ほど示した要素ではありません) を選択することを期待しています。

4

1 に答える 1

2

.show()あなたのコードは、直線的に起こったと仮定して正しいでしょう。ただし.show()、表示されているオブジェクトで終了するアニメーションを開始します。表示後にコードを実行したい場合は、アニメーションの長さと callback を指定した代替フォームを使用して.show(100,function(){})ください。

于 2010-06-14T15:37:26.460 に答える