jQuery事件处理和就绪函数

时间:2009-08-22 23:26:39

标签: javascript jquery html dom events

我是jQuery的新手(我今天早上开始),我很困惑究竟是什么触发了提供给ready函数的函数,以便执行。

根据jQuery文档[http://docs.jquery.com/Events/ready#fn]准备好的函数

  

绑定要执行的函数   每当DOM准备就绪时   遍历和操纵。

哪些事件可以导致DOM树准备好遍历?具体来说,我将ready函数应用于整个文档树:

<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准备好再次遍历?或者整个页面是否由浏览器重新加载?任何见解将不胜感激。

亲切的问候,

欧文。

1 个答案:

答案 0 :(得分:2)

从快速浏览中我注意到了一个错误,因为您要调用的方法是

event.preventDefault()

您正在为ready事件提供的方法没有完全重复执行,我认为它正在通过您设置的.toggle事件处理程序执行它应该做的事情。