2009-08-22 14 views
1

jQuery(私は今朝始まったばかりです)の新機能です。準備関数に提供された関数が実行される原因を正確に突き止めるのは混乱しています。 jQueryのドキュメントによればjQueryのイベント処理と準備関数

[http://docs.jquery.com/Events/ready#fn]レディ機能

はDOMが を横断し、操作する準備ができているときはいつでも を実行する機能をバインド。

DOMツリーを通過させる準備ができているイベントはありますか?具体的には、私は、文書全体のツリーにレディ機能を適用します。

<script type="text/javascript"> 
    $(document).ready(function(){ 

     $("p + p").hide(); 

     $("a").click(function(event){ 
      $("p + p").toggle(); 
      event.preventDefaults(); 
     }); 

    }); 

</script> 

この機能がない場合にのみ、ページが最初に読み込まれますが、その後のハイパーリンクをクリックすることの結果として呼ばれているようです。

htmlにはいくつかの段落があり、$("p + p").hide();は、ページが読み込まれたときに、最初の部分を除くすべての部分を非表示にします。最初の段落に埋め込まれたハイパーリンクが残りの段落を表示するために使用されます。

しかし、ハイパーリンク(<a href="">Read more...</a>)をクリックすると、提供された機能がすぐに実行できるようになり、表示された直後に段落が隠されているようです。

クリック内のアクションによってドキュメントDOM全体が再びトラバースできるようになるのはなぜですか?または、ページ全体がブラウザによってリロードされていますか?どんな洞察も大変高く評価されます。

親切にして、

オーウェン迅速なスキムミルクから

答えて

2

は、私はあなたが呼び出したいメソッドが

event.preventDefault() 

あなたは完全にすべての繰り返し実行されていないreadyイベントに給餌されている方法であるという点で、タイプミスに気づいた、私はそれがだと思います設定した.toggleイベントハンドラで何をすべきかを実行します。

関連する問題