gpt4 book ai didi

javascript - Jquery选择器和事件监听逻辑?

转载 作者:行者123 更新时间:2023-11-28 19:49:12 24 4
gpt4 key购买 nike

我刚刚开始为我当前的项目学习 Jquery。我对 Jquery 对象的选择器和监听器感到困惑。

$("input").change(function() {
alert( "Handler for .change() called." );
});

这正是 http://api.jquery.com/change/ 的副本...我将选择器从“.target”更改为“input”。

但是,更改事件不会处理任何输入元素。

我收到此错误。我很确定有带有输入名称的元素

“未捕获的类型错误:无法读取空函数的属性“更改”。js:378(匿名函数)”。

是逻辑有问题还是语法错误。我将错误范围缩小了这么多,但我仍然没有看到问题?

------编辑------

我测试了答案,所有答案都是正确的。当事件处理程序/监听器通过 jquery 选择器分配给元素时。

$("selectorStatement").EventHandlerShortCut(function() {
//Some code
});

当执行下面的代码时

$("input").change // Change handler for ALL INPUT elements

Jquery 引擎获取所有输入元素(!!所有在该时刻声明并存在的输入元素 - 执行的时刻处理程序 - !!)

在那一刻之后,如果生成了新元素,Handler 将无法识别。唯一可以防止这种情况的方法是使用 $(document).ready ,它将在创建整个文档后调用代码。正如 @Henrik Peinar 、 @Chandrika Prajapati 、 @G Z 、 @Gaurav 、 @Mzn 在他们的回答中提到的......

除此之外,就我而言,

我使用生成一些输入

document.anElement.innerHTML = "<foo></foo>"

文档准备好后使用。对于这种情况可以有两种方法。

这个 foo 元素可以在文档渲染时生成。通过使用

display:none

因此,当文档准备好时,jquery 引擎可以读取该元素。并且在到来时可以变得可见。

或者。

$("fooSelector").handlerType(...

当页面是动态的时,处理程序调用者可以再次被调用。这是一个简单但糟糕的解决方案。

最佳答案

听起来您的选择器没有返回结果(null)。

要验证此函数在标记准备就绪时是否被调用,请在文档完全加载时执行该语句。

尝试使用以下内容:

$(function () {

$("input").change(function() {
alert( "Handler for .change() called." );
});


});

$(function() { ...}) 相当于 $(document).ready(function() { ...});

关于javascript - Jquery选择器和事件监听逻辑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23784678/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com