1

これは、hyの頭の底がどのように見えるかです:

$('#hello').mouseenter(function() {
$(this).effect("bounce", { times:1, distance:10 }, 800);
});

jQuery1.7.2とjQueryUI1.8にリンクしています。エラーは発生していませんが、#hello divにカーソルを合わせると、何も起こりません。何か案は?

ありがとう!

4

1 に答える 1

2

あなたの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
});

続きを読むhttp://api.jquery.com/ready/

于 2012-06-23T05:24:41.017 に答える