代码之家  ›  专栏  ›  技术社区  ›  Owen

jquery事件处理和就绪函数

  •  1
  • Owen  · 技术社区  · 15 年前

    我对jquery非常陌生(我今天早上开始),我对什么触发了为准备好的函数提供的要执行的函数感到困惑。

    根据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 回复  |  直到 15 年前
        1
  •  2
  •   meder omuraliev    15 年前

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

    event.preventDefault()
    

    您提供给就绪事件的方法并没有完全重新执行,我认为它正在通过您设置的.toggle事件处理程序执行它应该执行的操作。