-1

css()jqueryの機能で要素の可視性を変更したいのですが、うまくいきません。おもしろいことに、私のサイトの他の場所でも同じ構文が機能し、コードの同じ行で CSS パラメーターと値を変更することもでき、機能します。しかし、それは可視性のために機能しません。

私のクエリ:

$('.promo_container').each(function(promoIndex){

    var $_this = $(this);

    $_this.css({'visibility':'visible'});

    console.log($_this); //This is the correct output ie. the right element

});

紛らわしいのは、この構文を別のjsファイルで使用していて、それが機能することです。私がこの行を変更すると、私の心を吹き飛ばすのは...

$_this.css({'visibility':'visible'});

...これに...

$_this.css({'background':'red'});

...できます!!Chrome で開発者コンソールを開くと、動的に設定された背景色のスタイルが表示されます。可視性の変更に戻ると、コンソールに動的に設定されたスタイルはありません。何も上書きしないように表示visibilityされます。hiddenしかし、それは上書きされるべきですよね?

編集

問題は要素が表示されないことではなく、動的に適用されたスタイルが開発者コンソールに何も表示されないことです。また、コンソールでパラメーターのチェックを外すとvisibility:hidden、要素が表示されるため、要素を非表示にするのはこれだけです。

私はちょうどこれを試しました:

$_this.show();

機能していません。要素は非表示のままです。もう一度言いますが、セレクターを変更せずに CSS を変更すると正常に動作するため、間違った要素をターゲットにしているわけではありません。唯一の問題は、CSS が可視性を設定しているときです。

のCSS $_this:

overflow:hidden;
visibility:hidden;
position:relative;
height:100%;

HTML は問題にならないはずですが、これは私の要素のマークアップです:

<div class="promo_container" data-random="{if $controller->startOn == 1}random{/if}">
    ...
    //That is Smarty syntax inside the element above, 
    it is working fine and should not be affecting anything
</div>

編集2

タイプミスでした。visibileの代わりに持っていましたvisible。:D

4

4 に答える 4

0

使用します: $_this.css({'visibility':'visible'}); あなたが持っている場合のみ:

visibility: css では非表示ですが、display:none; を使用している場合。あなたのCSSで

jquery show 関数を使用する必要があります

あなたのコードは次のようになります。

$('.promo_container').each(function(promoIndex){

    var $_this = $(this);

    $_this.show();

    console.log($_this); //This is the correct output ie. the right element

}
于 2013-07-30T14:38:19.617 に答える
0

私はあなたのコードを個別に試してみましたが、以下はうまくいくようです:

$('.promo_container').each(function(promoIndex){
    alert(promoIndex);
    var $_this = $(this);
    $_this.css({'visibility' : 'visible' });
})

デモを参照してください: http://jsfiddle.net/audetwebdesign/9mgVt/

何か他のことが起こっています...

于 2013-07-30T14:38:42.433 に答える
-1

要素を非表示にする方法はいくつかあります。

たとえば、display: noneCSS プロパティやhidden="hidden"HTML 属性を持つことができます。

jQuery.show()には、これらすべてのケースを解決する方法があります。

于 2013-07-30T14:19:28.533 に答える