Javascript Jquery函数触发
一个简单的问题真的。。有人能解释一下为什么第一个例子有效,而第二个却不行Javascript Jquery函数触发,javascript,jquery,Javascript,Jquery,一个简单的问题真的。。有人能解释一下为什么第一个例子有效,而第二个却不行 $(function() { $("#select_one").change(function() { alert('efjwelf'); }); }); ###示例2 $("#select_one").change(function() { alert('efjwelf'); }); 提前感谢在第二个示例中,您绑定到
$(function()
{
$("#select_one").change(function()
{
alert('efjwelf');
});
});
###示例2
$("#select_one").change(function()
{
alert('efjwelf');
});
提前感谢在第二个示例中,您绑定到的元素(
#select_one
)还不存在,因此事件侦听器不会绑定到任何东西
调用bind
(或change
,或其他快捷方式方法)时,事件侦听器仅附加到选择器当时匹配的元素。以后添加的图元不会附着。为了解决这个问题,我们使用了以下方法:
- -这确保文档在附加事件之前准备就绪
- -这会将侦听器连接到与选择器匹配的所有元素,无论是现在还是将来
- -这会将侦听器连接到与选择器匹配的所有元素和根元素,无论是现在还是将来
\select\u one
对象不存在$function(){…})
是$(document)的简写。ready(function(){…})
如果在执行两个脚本时都存在id为“select_one”的元素,那么它们都会工作。在第二个脚本上,您尝试附加事件处理程序的元素还不可用
选中此项:
我真的建议你阅读官方文件。这方面有大量的资源。这就是为什么我不喜欢语法
$(function()
),我更喜欢功能上等价的$(document.ready())
因为对于不是jQuery专家的人来说,它更能自我描述。@jfriend00-$
是一个可怕的函数,它的名字毫无意义,它做的事情完全不同,这取决于你传递的是一个包含CSS选择器的字符串、一个HTMLElementNode、一个包含HTML的字符串还是一个函数。@jfriend-这很好我犯了很多错误。我没有意识到其中一个是另一个的别名。我在四处搜索时也在努力描述这个问题。现在看起来很简单。lol@Quentin-这就是jQuery。你要么学习它,要么使用不同的库。$
根据你传递的内容,它会严重超载。很多jQuery函数也是如此选项。x.html()
返回innerHTML,并设置innerHTML。YUI使用更传统的x.getContent()
和x.setContent(“foo”)
。它们就是它们。您可以学习它的工作原理并调整或选择适合您风格的库。
All three of the following syntaxes are equivalent:
$(document).ready(handler)
$().ready(handler) (this is not recommended)
$(handler)