- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我写了一个选择类别的代码,它适用于父类别但不适用于子类别。
场景:父猫是一个由页面加载加载的 DOM 元素列表,但是当我单击其中一个时,它会发出 ajax 请求并检索其子项列表,然后在页面中呈现它们。通过这种方式,一个新的 DOM 列表被点击,现在下面的 javascript 代码负责将点击事件附加到生成的子猫。但是,它不起作用,没有控制台错误,没有其他任何东西,好像根本没有 JS。
//***** SELECTING CHILD CATEGORIES *****/
var child_cat = $('.new-child-item');
child_cat.click(function(){alert("AAA");});
child_cat.on('click', function(){
console.log("Very Fine");
if($(this).hasClass('active-child'))
{
$(this).addClass('new-child-item');
$(this).addClass('inactive-child');
$(this).removeClass('active-child');
}
else
{
$(this).addClass('new-child-item-active');
$(this).addClass('active-child');
$(this).removeClass('inactive-child');
}
});
//**** SELECTING CHILD CATEGORIES ***/
下面是当用户点击它的父级时生成的子级猫:
<div style="display: block;" class="new-item-cats-list-holder clearfix"><div class="inactive-child new-child-item" id="5">
نرم افزار
</div><label class="new-item-side-label"></label><div class="inactive-child new-child-item" id="6">
سخت افزار
</div><label class="new-item-side-label"></label><div class="inactive-child new-child-item" id="7">
ICDL
</div><label class="new-item-side-label"></label><div class="inactive-child new-child-item" id="8">
شبکه
</div><label class="new-item-side-label"></label><div class="inactive-child new-child-item" id="9">
برنامه نویسی
</div><label class="new-item-side-label"></label><div class="inactive-child new-child-item" id="10">
طراحی
</div><label class="new-item-side-label"></label><div class="inactive-child new-child-item" id="11">
اینترنت
</div><label class="new-item-side-label"></label><div class="inactive-child new-child-item" id="12">
طراحی سایت
</div><label class="new-item-side-label"></label><div class="inactive-child new-child-item" id="13">
تایپ
</div><label class="new-item-side-label"></label></div>
最佳答案
动态添加的元素需要事件委托(delegate)。使用其他版本的 on()
用于事件委托(delegate)。
$(document).on('click', '.new-child-item', function(){
console.log("Very Fine");
if($(this).hasClass('active-child'))
{
$(this).addClass('new-child-item');
$(this).addClass('inactive-child');
$(this).removeClass('active-child');
}
else
{
$(this).addClass('new-child-item-active');
$(this).addClass('active-child');
$(this).removeClass('inactive-child');
}
});
您必须将事件委托(delegate)给动态添加元素的 static
父元素,该元素在执行事件绑定(bind)代码时存在,或者您可以委托(delegate)给 document/body
。
Delegated events have the advantage that they can process events from descendant elements that are added to the document at a later time. By picking an element that is guaranteed to be present at the time the delegated event handler is attached, you can use delegated events to avoid the need to frequently attach and remove event handlers, jQuery doc
关于javascript - 在 document.ready 事件之后插入到页面的 DOM jQuery 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20865576/
我正在尝试计算 iFrame 的高度,但不明白为什么 document.body.offsetHeight + document.body.bottomMargin 不等于 document.docu
我正在使用 Node/Mongoose/MongoDB 并尝试构建一个轮询应用程序。一个关键需求是跟踪单个用户对同一民意调查的响应如何随时间变化(他们一遍又一遍地进行同一民意调查)。 我有一个用户模型
首先,我不是普通的博主,我很困惑。如果我的问题不符合要求,请指导我。我会努力改进的。 我已提交 Microsoft Code Review 的 Microsoft CRM 插件。我是 JavaScri
谁能解释为什么使用类似的东西: gci -force "\\computername\c$\users\username\Documents" -recurse 或者 gci -force "\\co
It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, over
这个问题已经有答案了: What is the (function() { } )() construct in JavaScript? (28 个回答) 已关闭 6 年前。 说实话,一开始我以为我可
document.getElementsByTagName("*") 适用于 IE/Firefox/Opera,但不适用于 Chrome 和 Safari。 document.all 适用于 IE/C
这个问题在这里已经有了答案: What is the difference between Document and document in JavaScript? (2 个答案) 关闭 8 年前。
我以某种方式发现将事件监听器添加到文档的行为有点奇怪。虽然向 HTMLElements 添加监听器工作正常,但向文档添加监听器不起作用。但奇怪的是,使用 jQuery 可以让它工作。 那么有人可以解释
谁能告诉我这两个 JavaScript 命令之间的区别? 这两个跨主要浏览器的兼容性是什么?我知道 documentElement 与大多数浏览器兼容。 谢谢 最佳答案 document.docume
什么时候应该使用 document.all 与 document.getElementById? 最佳答案 document.all 是 Microsoft 对 W3C 标准的专有扩展。 getEle
当升级到 react-native 0.61.2 时,这个问题出现了。我做到了从手机中删除了 apk 和自动链接使用 react-native link 然后 react-native run-and
当升级到 react-native 0.61.2 时,这个问题出现了。我做到了从手机中删除了 apk 和自动链接使用 react-native link 然后 react-native run-and
我将收到 tungstenite::Message ,它将包含来自客户端的bson文档。我可以将tungstenite::Message转换为Vec,但是如何在服务器端将其转换回 bson::docu
我这里有一个简单的疑问: 文档对象范围位于浏览器选项卡内:我的意思是如果我设置document.tab1 ='tab1' 在一个浏览器选项卡中 它在其他选项卡中不可用。 但是 document.coo
我经常使用并看到推荐的 dom 访问结构,例如这样动态地将内容添加到页面: loader = document.createElement('script'); loader.src = "myurl
我对 JQuery 还很陌生。我正在使用this JQuery 函数在元素上显示工具提示。 我根据我的需要(在这个社区的帮助下)以这种方式编辑了代码: $(document).ready(functi
我想知道哪个是运行js代码的正确方法,该代码根据窗口高度计算垂直菜单的高度并按时设置,不晚不早。 我正在使用 document.ready 但它并没有真正帮助我解决这个问题,它有时没有设置,我必须重新
我正在浏览一个 js 文件并发现这个声明var dataobj=document.all? document.all.id_name : document.getElementById("id_nam
想知道何时使用,这适用于什么浏览器? if (document.all&&document.getElementById) { // Some code block } 最佳答案 我认为没有任何重要的
我是一名优秀的程序员,十分优秀!