Javascript Jquery选择器和事件侦听逻辑?
我刚刚开始为我当前的项目学习Jquery。我对Jquery对象的选择器和侦听器感到困惑Javascript Jquery选择器和事件侦听逻辑?,javascript,jquery,event-handling,document-ready,dynamic-html,Javascript,Jquery,Event Handling,Document Ready,Dynamic Html,我刚刚开始为我当前的项目学习Jquery。我对Jquery对象的选择器和侦听器感到困惑 $("input").change(function() { alert( "Handler for .change() called." ); }); 这正是。。。我将选择器从“.target”更改为“input” 然而,并没有一个输入元素是由变更事件处理的 我得到这个错误。我很确定有输入名的元素 “未捕获的TypeError:无法读取空函数的属性'change
$("input").change(function() {
alert( "Handler for .change() called." );
});
这正是。。。我将选择器从“.target”更改为“input”
然而,并没有一个输入元素是由变更事件处理的
我得到这个错误。我很确定有输入名的元素
“未捕获的TypeError:无法读取空函数的属性'change'。js:378
(匿名函数)”
是逻辑错误还是语法错误。我把错误缩小了这么多,但我还是看不出问题所在
------编辑------
我测试答案,所有答案都是正确的。
当事件处理程序/侦听器通过jquery选择器分配给元素时
$("selectorStatement").EventHandlerShortCut(function() {
//Some code
});
当执行下面的代码时
$("input").change // Change handler for ALL INPUT elements
Jquery引擎获取所有输入元素(!!声明并存在于该时刻的所有输入元素-执行的时刻处理程序-!!)
在那个时刻之后,若生成了新元素,那个么处理程序将不会识别它。唯一可以防止这种情况的方法是使用$(document).ready,它将在创建整个文档后调用代码。正如@Henrik Peinar、@Chandrika Prajapati、@G Z、@Gaurav、@Mzn在他们的回答中提到的那样
除此之外,,
就我而言
我通过使用
document.anElement.innerHTML = "<foo></foo>"
因此,当文档准备就绪时,jquery引擎可以读取元素。并且可以在消息到达时显示
或者
当页面处于动态状态时,可以再次调用处理程序调用方。这是一个简单但糟糕的解决方案。听起来您的选择器没有返回结果(null) 要验证在标记就绪时调用此函数,请在文档完全加载时执行该语句 请尝试使用以下方法:
$(function () {
$("input").change(function() {
alert( "Handler for .change() called." );
});
});
<script>
$(document).ready(function(){
//do "on document ready" things.
});
</script>
$(function(){…})等同于$(document).ready(function(){…}) 听起来您的选择器没有返回结果(null) 要验证在标记就绪时调用此函数,请在文档完全加载时执行该语句 请尝试使用以下方法:
$(function () {
$("input").change(function() {
alert( "Handler for .change() called." );
});
});
<script>
$(document).ready(function(){
//do "on document ready" things.
});
</script>
$(function(){…})等同于$(document).ready(function(){…}) 听起来您的选择器没有返回结果(null) 要验证在标记就绪时调用此函数,请在文档完全加载时执行该语句 请尝试使用以下方法:
$(function () {
$("input").change(function() {
alert( "Handler for .change() called." );
});
});
<script>
$(document).ready(function(){
//do "on document ready" things.
});
</script>
$(function(){…})等同于$(document).ready(function(){…}) 听起来您的选择器没有返回结果(null) 要验证在标记就绪时调用此函数,请在文档完全加载时执行该语句 请尝试使用以下方法:
$(function () {
$("input").change(function() {
alert( "Handler for .change() called." );
});
});
<script>
$(document).ready(function(){
//do "on document ready" things.
});
</script>
$(function(){…})等同于$(document).ready(function(){…}) 如注释所示,请确保在DOM中已存在元素时调用此函数 操作步骤: 创建DOM元素
<input type="text" />
下面是您代码中的JSFIDLE,正如注释中建议的那样。请确保在DOM中已经存在元素时调用此函数 操作步骤: 创建DOM元素
<input type="text" />
下面是您代码中的JSFIDLE,正如注释中建议的那样。请确保在DOM中已经存在元素时调用此函数 操作步骤: 创建DOM元素
<input type="text" />
下面是您代码中的JSFIDLE,正如注释中建议的那样。请确保在DOM中已经存在元素时调用此函数 操作步骤: 创建DOM元素
<input type="text" />
这是您的代码中的JSFIDLE,我想您的注释应该在页面底部吗?(在输入元素声明之后)正确打开
$(“输入”)
将允许jQuery检查DOM(文档对象模型)并获取所有输入元素。您没有,因为DOM尚未构建。所以你的思路是正确的
一般做法是等到文件准备好。在jQuery中,这非常简单,您几乎可以在任何地方输入代码,如下所示:
<script>
$(function(){
//do "on document ready" things.
});
</script>
$(函数(){
//做“准备好文档”的事情。
});
请注意,上面的代码是表达以下内容的奇特方式:
$(function () {
$("input").change(function() {
alert( "Handler for .change() called." );
});
});
<script>
$(document).ready(function(){
//do "on document ready" things.
});
</script>
$(文档).ready(函数(){
//做“准备好文档”的事情。
});
它们是相同的,只是第一行要写的字符更少。我想你的评论
这些行应该在页面底部吗?(在输入元素声明之后)
正确打开
$(“输入”)
将允许jQuery检查DOM(文档对象模型)并获取所有输入元素。您没有,因为DOM尚未构建。所以你的思路是正确的
一般做法是等到文件准备好。在jQuery中,这非常简单,您几乎可以在任何地方输入代码,如下所示:
<script>
$(function(){
//do "on document ready" things.
});
</script>
$(函数(){
//做“准备好文档”的事情。
});
请注意,上面的代码是表达以下内容的奇特方式:
$(function () {
$("input").change(function() {
alert( "Handler for .change() called." );
});
});
<script>
$(document).ready(function(){
//do "on document ready" things.
});
</script>
$(文档).ready(函数(){
//做“准备好文档”的事情。
});
它们是相同的,只是第一行要写的字符更少。我想你的评论
这些行应该在页面底部吗?(在输入元素声明之后)
正确打开
$(“输入”)
将允许jQuery检查DOM(文档对象模型)并获取所有输入元素。您没有,因为DOM尚未构建。所以你的思路是正确的
一般做法是等到文件准备好。在jQuery中,这非常简单,您几乎可以在任何地方输入代码,如下所示:
<script>
$(function(){
//do "on document ready" things.
});
</script>
$(函数(){
//做“准备好文档”的事情。
});
请注意,上面的代码是表达以下内容的奇特方式:
$(function () {
$("input").change(function() {
alert( "Handler for .change() called." );
});
});
<script>
$(document).ready(function(){
//do "on document ready" things.
});
</script>
$(文档).ready(函数(){
//做“准备好文档”的事情。
});
它们是身份证