41

このようなタブがあります。

<li id="singlechatpanel-1" style="visibility: hidden;">
     //content
</li>

次のように確認しようとしています。

$(".subpanel a").click(function() 
     {
        var chatterNickname = $(this).text();

        if(!$("#singlechatpanel-1").is(':visible'))
        {
            alert("Room 1 is filled.");
            $("#singlechatpanel-1").css({'visibility':'visible'});
            $("#singlechatpanel-1 #chatter_nickname").html("Chatting with: " + chatterNickname);
        }

if 条件は常に false を返します。この div の可視性の状態を確認するにはどうすればよいですか?

4

8 に答える 8

55

表示されているか確認してください。

$("#singlechatpanel-1").is(':visible');

隠れていないか確認してください。

$("#singlechatpanel-1").is(':hidden');

于 2014-05-29T11:14:50.440 に答える
50

is(':visible')要素のプロパティをチェックするには、メソッドdisplayを使用できますcss

if (!$("#singlechatpanel-1").css('visibility') === 'hidden') {
   // ...
}

display要素のプロパティを に設定するとnoneifステートメントは を返しますtrue

于 2012-09-10T14:30:50.693 に答える
17

要素がjqueryで非表示の場合は、使用します

if($("#elmentid").is(':hidden'))
于 2015-03-11T09:37:48.803 に答える
8

.css()「可視性」の値を取得するために使用できます。

 if( ! ( $("#singlechatpanel-1").css('visibility') === "hidden")){
 }

http://api.jquery.com/css/

于 2012-09-10T14:29:17.917 に答える
3

(':hidden') メソッドを使用して、div が表示されているかどうかを確認できます。また、コードで複数回使用している場合は、要素をキャッシュすることをお勧めします。

$(".subpanel a").click(function() 
     {
        var chatterNickname = $(this).text();
        var $chatPanel = $("#singlechatpanel-1");

        if(!$chatPanel.is(':hidden'))
        {
            alert("Room 1 is filled.");
            $chatPanel.show();
            $("#singlechatpanel-1 #chatter_nickname").html("Chatting with: " + chatterNickname);
        }
});
于 2012-09-10T15:20:16.537 に答える
3
if (!$('#singlechatpanel-1').css('display') == 'none') {
   alert('visible');
}else{
   alert('hidden');
}
于 2015-09-01T09:55:34.463 に答える
1

liあなたをクラスに追加$(".myclass").hide();し、可視性スタイル属性の代わりにそれを非表示にするために最初に実行します。

私の知る限り、jquery はdisplaystyle 属性を使用して、可視性の代わりに要素を表示/非表示にします (どちらの場合も、上記は試してみる価値があります)。

于 2012-09-10T14:33:10.603 に答える