2009-08-22 105 views
1

我對jQuery非常陌生(今天早上我開始了這個工作),我很困惑,究竟是什麼觸發了提供給ready函數的函數來執行。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() 

你是餵養就緒的事件沒有被完全從頭再來執行的方法,我認爲這是通過您設置的.toggle事件處理程序來做它應該做的事情。