• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:jQueryの否定疑似クラスが効かない)

jQueryの否定疑似クラスが効かない

このQ&Aのポイント
  • ボタンをクリックしてもコンテンツが表示されない問題が発生しています。
  • 否定疑似クラスを使用しない場合は正常に動作しています。
  • スクリプトを修正する必要があります。

質問者が選んだベストアンサー

  • ベストアンサー
  • tracer
  • ベストアンサー率41% (255/621)
回答No.3

ちょっとよくわかってないのですが、もし、本当にconsole.logで期待する要素を取れているのを確認できているのであれば、質問タイトルの「jQueryの否定疑似クラスが効かない」は、解決してると思うのですが。。つまり、否定擬似クラスは正常に作動しているわけです。 ただ、個人的には、ほんとに取れているのかな。。とは思いますが。

mc0816
質問者

お礼

度々のアドバイスをありがとうございます。 console.logがきちんと取得できているか、 本当に期待する要素として間違いないかを、もう一度確認してみます。 勉強させていただきました。 ありがとうございました。

その他の回答 (2)

  • tracer
  • ベストアンサー率41% (255/621)
回答No.2

#1の追記です。 ちなみに、console.logはご存知ですか? console.logを使うと、オブジェクトの中身を確認できるので、たとえば、jQueryセレクタで選択したものが、期待する要素なのかを確認することができますよ。 console.log($("#overLayer")); console.logで確認できれば、今回の場合は、クリックした結果で判断しなくても済みますし、原因の特定も早いと思います。

mc0816
質問者

お礼

console.log という機能、やってみました。 教えてくださりありがとうございます。 でも、これで見ると、問題なく期待するオブジェクトを指しています。 もう少し、いろいろやってみます。 重ね重ね、ありがとうございます。

  • tracer
  • ベストアンサー率41% (255/621)
回答No.1

セレクタの使い方が間違っています。 が、期待している選択ががいまいちわかりません。 ちなみに、$("#glayLayer , #overLayer:not(.overLayerContents)")は、 IDがglayLayerの要素と、IDが#overLayerかつクラスがoverLayerContentsでない要素を同時に選択しています。IDが#overLayerかつクラスがoverLayerContentsでない要素は存在していませんよね。何を選択しようとしたのか、具体的に日本語で書いてもらえると、回答が出やすいと思います。

mc0816
質問者

補足

すみません 説明不足でした。 #glayLayer ↓ windowサイズと同じサイズでwidth:100%,height:100%にしています。 #overLayer ↓ position:fixedで配置 こちらはwindowサイズと同じでないです。 (#glayLayerと#overLayerはレイヤーみたいに重なっています。) ※これは中のコンテンツ(.glayLayerContents)を cssでmargin: 0 auto;で中央に配置するために置いています。 .overLayerContents ↓ #overLayerの中の子要素 #overLayerの要素内の一部で、中央に配置 ※つまり、3つの要素は重なりあっています。 やりたいことは、 “class=overLayerContentsでない所”をクリックしたら #glayLayer と #overLayerを非表示にしたいんです。 もしお分かりになりましたら、どうぞ宜しくお願いいたします。

関連するQ&A

専門家に質問してみよう