以前に報告されたように、最初のハンドラーの最後に閉じ括弧がありません。
ハンドラー内では、ドキュメントのすべての div$(this)
ではなく、イベントを発生させた要素への参照を使用する必要があります。
$(document.ready(function(){
$('div').mouseover(function(){
$(this).slideDown('slow');
});
$('div').mouseout(function(){
$(this).slideUp('slow');
});
});
また、より具体的なセレクターを処理することをお勧めしますdiv
... そのような紛らわしいセレクターを使用すると、ページが「何も変更できない」状態になります。次のようなマークアップを使用します。
<div class="hover-effect">
<!-- content -->
</div>
次のようなものがあります。
$('.hover-effect').mouseover(/* ... */);
$('.hover-effect').mouseout(/* ... */);
アップデート:
あなたが提供したjsfiddleによると、基本的に、表示されていないdivでマウスオーバーイベントを処理しようとしています。コードは期待どおりに機能します。野球をしていると、ボールがまだ投げられていないときにボールを打とうとする壮大な時間がきっとあります。
まず、常に一定の幅と高さを持つコンテナーが必要です。これを確実にする 1 つの方法は、コンテナーに上部パディングを設定することです。そのコンテナー内で、スライダーは「何もない」状態にならずに好きなようにスライドできます。自由なポインター効果の利点のために、リンクとして表示されることを意図していると仮定しました。
これを試して:
HTML
<a class="slider-container" href="#">
<div class="slider"></div>
</a>
CSS
.slider-container {
display:block;
width:100px;
padding-top:25px;
background-color:#000000;
}
.slider {
width: 100px;
height: 100px;
background-color:#000000;
display:none;
}
Jクエリ
$(document).ready(function(){
var $slider_container=$('.slider-container');
$slider_container.mouseover(function(){
$('.slider',this).stop().slideDown('slow');
});
$slider_container.mouseout(function(){
$('.slider',this).stop().slideUp("slow");
});
});
この動作中のFIDDLEを見てください