我不确定何时使用$(document).ready(function() { });
以及何时声明$(function() { }
而不在$(document).ready(function() { });
<body>
<textarea id="test" cols="50" rows="15"><p><h3>Test H3</h3>This is some sample text to test out the <b>WYSIWYG Control</b>.</p></textarea>
<script type="text/javascript">
$(function() {
$("textarea").htmlarea();
});
</script>
例如以下代码段:
$(document).ready(function() { });
不使用<body>
<textarea id="test" cols="50" rows="15"><p><h3>Test H3</h3>This is some sample text to test out the <b>WYSIWYG Control</b>.</p></textarea>
<script type="text/javascript">
$(document).ready(function(){
$("btn").click(function(){
alert('Hello!!!');
});
});
$(function() {
$("textarea").htmlarea();
});
</script>
但以下内容正常工作:
id="btn"
当我按下{{1}}按钮时,它什么也没做 我做错了吗?
答案 0 :(得分:6)
在第二个示例中,假设您确实在某处有一个id
btn
的按钮,问题是您错过了#
来按ID选择:< / p>
// ⌄ here
$("#btn")
使用一个函数调用$
并使用相同的函数are equivalent调用$(document).ready
。
要回答“我什么时候需要等待ready
”的问题,答案很简单,您需要等到DOM中存在一个元素才能找到它。有时,需要等到整个页面(尽管不一定是所有链接的资源)都已下载并解析为树;有时你会在你需要的元素之后的某个时刻包含你的脚本,所以你根本不必等待;有时你会对存在的元素使用事件委托(一个常见的例子就是整个文档)。你几乎可以说这取决于偏好。
答案 1 :(得分:1)
如果您的按钮 id btn
,则应使用$('#btn')
选择器,如下所示:
$(document).ready(function(){
$("#btn").click(function(){
alert('Hello!!!');
});
});
对第一个问题:
$(document).ready(function () { ... })
和$(function() { ... })
之间存在无差异,您可以使用其中任何一种。
答案 2 :(得分:1)
除非特别需要不使用它,否则您应该始终使用$(document).ready(function(){})
来引导应用程序,因为一旦准备好遍历DOM,它们就会被执行。
在你的例子中,你的两个函数做同样的事情,我更喜欢使用$(document).ready()
因为它更明确和可读。
您的代码无效的原因是因为您没有使用正确的选择器,使用$(“btn”)会查找html元素,例如但是找不到任何因为它是无效的HTML。您应该使用$("#btn")
选择按钮。 '#'用于查找id而'''。可用于选择具有特定类属性的多个项目。
答案 3 :(得分:0)
当dom准备就绪时,document.ready
个事件中声明的函数将被执行。其他函数(在document.ready
之外)在触发相应的事件时被调用。
答案 4 :(得分:0)
当您希望在网页中“早期”发生事情时,有两件事情很重要:
$(document).ready
会触发。onload
事件。如果你没有通过网络获取任何东西(或者没什么太大的东西),很可能两个事件都是同时发生的,你可以简单地在底部的script
标签中运行一些东西。要做的工作的页面。
另请注意,您采用的两种方法是等效的。他们都是“准备好”的事件处理程序。
说了这么多,没有一个与你的问题有关。 $("btn")
无法解决任何问题,因为您的选择器很糟糕。没有名为button的元素。您可能需要btn
的ID,在这种情况下,您要执行此操作$("#btn")