これは、hyの頭の底がどのように見えるかです:
$('#hello').mouseenter(function() {
$(this).effect("bounce", { times:1, distance:10 }, 800);
});
jQuery1.7.2とjQueryUI1.8にリンクしています。エラーは発生していませんが、#hello divにカーソルを合わせると、何も起こりません。何か案は?
ありがとう!
あなたのjQueryコードは問題ないようです、それであなたはdocument ready
ブロックを逃した可能性が高いです
doc ready
したがって、次のようなハンドラーを追加します
$(function() {
$('#hello').mouseenter(function() {
$(this).effect("bounce", {
times: 1,
distance: 30
}, 800);
});
});
準備ができたときにコードが確実に起動するようにしますDOM
。
を使用$("#hello").mouseenter(...)
せずに使用する場合、DOMにdoc ready block
要素がまだないときに、このコードが実行される可能性があります。id hello
したがって$("#hello")
、空のセットが返され、mouseenter
バインディングは機能しません。
なしでは機能しない場合のマークアップの例doc ready block
、
.
.
.
<script type="text/javascript">
$("#hello").mouseenter(....);
</script>
.
.
.
.
<div id="hello">Blah Blah....</div>
ブラウザはマークアップを順番に解釈するため、マークアップに直面するとすぐにjsコードを実行します。また、ここでJSブロックを実行すると、JSブロックの後に表示されるように、タグはまだ解析されていないため<div id="hello">
、現時点ではDOMに含まれていません。
したがって、上記の場合$("#hello")
は空であるため、イベントバインディングは機能しません。document ready
したがって、すべてのJSコードを次のようにブロック内に配置することは常に安全です。
$(function){
// put all your JS code here
});