HTML
<p id="para"> This is a paragraph</p>
JS/Jクエリ
$("para").hover(function() {$(this).hide();}, function() {$(this).show();});
今私がしようとしているのは、マウスが段落の上にあるときに要素が非表示になり、マウスが離れると要素が再び表示されるはずです。ただし、どちらの段落も隠れていないため、表示されません。ここで何が問題なのですか?
HTML
<p id="para"> This is a paragraph</p>
JS/Jクエリ
$("para").hover(function() {$(this).hide();}, function() {$(this).show();});
今私がしようとしているのは、マウスが段落の上にあるときに要素が非表示になり、マウスが離れると要素が再び表示されるはずです。ただし、どちらの段落も隠れていないため、表示されません。ここで何が問題なのですか?
# ID セレクターがありません。 「para」だけでタグを探してい<para>
ます (もちろん、この場合は存在しません。
$("#para")
補足として、通常、div
このような状況を包むような (セットサイズとしましょう) などを使用する必要があり、ホバーイベントが取得される場所と、内部の div が表示されます。「スキッピー」を少なくします。
また、div で行う場合は、CSS で行うことができます。
div:hover #para { display:block; }
IDの「#」を見逃しました。
$("#para").hover(function() {$(this).hide();}, function() {$(this).show();});
OPのタイプミスとして欠落#
していると仮定すると、要素が非表示になるとマウスアウトがトリガーされるため、コードは期待どおりに機能しません。
デモ:http: //jsfiddle.net/s8cpz/
('#para') で ('para') を修正すると、p タグを非表示にするとすぐに mouseout イベントがアクティブになり、hide() メソッドが実行され、マウス カーソルが上に来るまで p タグが点滅し始めるため、目標を達成できません。この解決策が役立つ場合があります。
$("#body").hover(function(){
$("#para").css("visibility","hidden");},
function()
{$("#para").css("visibility","visible");
}
);
<div id="body">
<p id="para"> This is a paragraph</p>
<div>
このコードは機能しません。ホバリングすると、すぐに消えるはずですよね?ただし、それが消えると、マウスはまだその上にあるため、消失p
はそれを , として登録しmouseleave
ます (カーソルが犯人であるか、それ自体であるかに関係なく、カーソルがカーソルから分離されていることがわかります。 t care)、効果的に のmouseleave
ハンドラーを起動します。hover
これは無限に続き、 の急速な点滅につながりますp
。$("p").css({opacity',0.01})
の代わりにできます$('p').hide()
。このコードで問題を確認してください。
<!DOCTYPE html>
<html>
<head>
<script src="jquery.js"></script>
<script>
$(document).ready(function(){
setTimeout(function() { $("p").hide(); },10000);
$("#para").mouseleave(function() {alert('cool');});
});
</script>
</head>
<body>
<p id="para"> This is a paragraph</p>
</body>
</html>
マウスを の上に置いたままにしてp
、10 秒後に がp
消えると、アラートがポップアップ表示され、mouseleave
ハンドラーが起動したことを示します。
まず、#を見逃しました。次に、要素が非表示になると、その css 表示プロパティが none に変更されるため、ページ上のスペースを占有しないため、マウスはもうその上になく、再び表示されます。これにより、一種の無限ループが作成されます。このようなエラーは純粋に論理的なものであり、古いバージョンのブラウザーをクラッシュさせることさえあります。