Jquery类选择器无法选择用.append()添加的新类实例
Jquery Class Selector Fails to Select new Class Instances Added with .append()
我对Javascript/jQuery还不太熟悉,所以如果我错过了一些基本的东西,请提前道歉。我有一个函数,每当用户键入具有特定类的元素时就会触发它。
$('.relevantClass').keyup(function(){
//code...
});
现在,根据具体情况,这个函数可能会创建大量新的HTML,包括通过.append()
方法创建的relevantClass
的新实例。
var newHTML = <div class='relevantclass'>Content...</div>;
$('#wrapper').append(newHtml);
然而,当用户键入新创建的relevantClasses
时,jQuery选择器似乎无法检测和执行该函数。我检查了新创建的Html,它有正确的类标记和相关类的旧实例。
我猜这与.append();
扰乱DOM有关,我需要某种方法来"刷新"选择器,并让它进行jQuery操作,研究DOM以找到新的类。有什么想法吗?有什么jQuery方法我找不到吗?
您必须使用on()
来附加对动态内容有效的事件:
var $parent = $("selector"); //the element you're appending .relevantClass to
$parent.on("keyup",".relevantClass",function(){
//code...
});
请记住,要使用动态内容,必须将事件附加到页面加载中存在的relevantClass
最接近的父级。
有些人使用body
,但您应该习惯于使用尽可能接近动态内容的父元素。这样一来,事件委派的规模就更小了。
有关on()
的更多信息,请点击此处。
另外,我希望newhtml
变量用引号括起来。
$('.relevantClass').on('keyup', function(){
//code...
});
尝试类似的东西
$('body').on('keyup', '.relevantClass', function() { ... }
其思想是使用现有的根元素,并使用类选择器作为过滤器。请参阅此处的示例。
相关文章:
- fluxxor向一个flux实例添加一组以上的操作
- 使用jQuery在类的每个实例上添加随机CSS
- Jquery类选择器无法选择用.append()添加的新类实例
- 实例化后可以添加React密钥
- 添加角光栅时模块实例化失败
- 如何在不覆盖的情况下添加同一JPanel类的不同实例
- 在同一网页上添加多个 Google 地点实例
- 使用ng repeat添加多个视图实例时的范围界定问题
- 在定义了构造函数之后,是否可以将实例属性添加到JavaScript原型中
- 如何将占位符属性添加到 CKEditor 的实例
- 删除聚合物元素,文件上传在实例上传时逐渐添加更多文件
- 如何将当前日期动态添加到对象的新实例并将其推送到数组
- Backbone.js集合在实例化时将自身的副本添加到集合中
- 动态添加内容样式到 CKEditor 4 实例
- 如何将实例方法添加到帆中的所有模型.js
- 如何将自定义属性添加到 HTML 环境,该属性将默认为元素的每个新实例上的空对象
- 在 Unity 5.3 中向新实例化的游戏对象添加强制时出现问题
- 是否可以在React组件实例化后添加一个关键属性
- 如何将方法添加到对象的实例中
- Javascript:在闭包中,私有成员(var)可以在实例化后添加吗