点击按钮,我显示一条警告信息。以下是我正在使用的代码。
<script type="text/javascript">
// $(document).ready(function(){
$("#clickHere").bind("click",function(){
alert('clicked');
});
//});
</script>
当.ready()行被注释时,当我点击按钮时不会抛出警报消息,但如果我取消注释这些行,则抛出警报。不应该在两种情况下都显示警报消息,因为我已经在“点击”事件上添加了对按钮的绑定吗?
答案 0 :(得分:6)
因为在解析javascript块时,DOM尚未就绪,因此您引用的元素尚不存在。
答案 1 :(得分:3)
这是因为.ready()
函数是一个jquery回调快捷方式,只有在DOM(html)加载到浏览器后才会触发。如果你将函数绑定到ready之外,那么DOM元素很可能还没有被加载,因此无法正确绑定。
您可以尝试将您的脚本移动到文档的底部,就在关闭正文标记之前,这会导致它在您的其他DOM元素之后加载,但作为标准练习,我通常不会绑定DOM元素直到DOM已加载。
答案 2 :(得分:1)
DOM需要准备好被JavaScript操纵才能应用项目。
答案 3 :(得分:1)
除非已经在DOM中创建了按钮。如果您的代码位于页面的头部,则不会发生这种情况,但如果它在关闭的正文标记之前就没问题了。
答案 4 :(得分:1)
为了实现在DOM未准备好解析时在元素上设置事件处理程序的功能,我相信你可以使用'on'方法,你可以“为一个或多个事件附加一个事件处理函数现在和未来的元素“。
答案 5 :(得分:0)
从一个非常宽松的意义上来说,想象$('document')。ready()就像你想到其他编程语言中的Main()方法一样。