我是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准备好再次遍历?或者整个页面是否由浏览器重新加载?任何见解将不胜感激。
亲切的问候,
欧文。
答案 0 :(得分:2)
从快速浏览中我注意到了一个错误,因为您要调用的方法是
event.preventDefault()
您正在为ready事件提供的方法没有完全重复执行,我认为它正在通过您设置的.toggle事件处理程序执行它应该做的事情。