Javascript jQuery将操作应用于正在注入的元素
我有一些页面的元素在页面加载后被库注入。这些元素有onClick操作,由jQuery控制。由于这些项目是在页面加载后呈现的,jQuery在针对这些项应用onClick操作时会出现问题吗?这是使用委托事件的典型情况,在这种情况下,您将处理程序绑定到父元素,并将特定选择器作为参数传递,并且jQuery仅当匹配的选择器是触发事件的选择器时才会触发处理程序 阅读有关jQuery文档的更多信息,请参见直接和委托事件Javascript jQuery将操作应用于正在注入的元素,javascript,jquery,html,Javascript,Jquery,Html,我有一些页面的元素在页面加载后被库注入。这些元素有onClick操作,由jQuery控制。由于这些项目是在页面加载后呈现的,jQuery在针对这些项应用onClick操作时会出现问题吗?这是使用委托事件的典型情况,在这种情况下,您将处理程序绑定到父元素,并将特定选择器作为参数传递,并且jQuery仅当匹配的选择器是触发事件的选择器时才会触发处理程序 阅读有关jQuery文档的更多信息,请参见直接和委托事件 事件-一个或多个空格分隔的事件类型和可选 名称空间,例如“click”或“keydown.
事件
-一个或多个空格分隔的事件类型和可选
名称空间,例如“click”或“keydown.myPlugin”
selector
一个选择器字符串,用于筛选所选对象的后代
触发事件的元素。如果选择器为空或省略,
事件始终在到达选定元素时触发
数据
事件发生时在event.data中传递给处理程序的数据
触发
handler(eventObject)
事件发生时要执行的函数
触发。值false也可以作为
只返回false的函数
上面的目标是以后可以添加到DOM中的动态元素
注意:
$("#myid").on("click",".myTargetElement", function(){
// do my click stuff here
});
标记示例:
<div id="myid">
<div class="myTargetElement">Click Me</div>
<div class="myTargetElement">Click Me</div>
</div>
示例:克隆上面标记中的第一个元素,并在单击时使其变为蓝色:
$("#myid").on("click",".myTargetElement", function(){
$(this).css('color','blue');
});
$('.myTargetElement').eq(0).clone().text("New").appendTo('#myid');
它可以,您可以“重新绑定”,如果可以的话,元素可以使用.on()/live()单击,具体取决于您使用的jQuery版本。@limelights jQuery 1.7.2
on()
工作得很好:)带“注意”的回答很好-特别是绑定到离目标最近的元素,这样它就不会绑定到文档。@Markschultheis是真的,并用讨论sameOne问题的链接更新了答案。。。on()
能够同时针对最初加载的元素和后来注入DOM的元素吗?@icu222是的,但正如我在第二篇笔记中提到的那样。。当元素可用时,最好直接将其绑定到该元素。对不起,由于某种原因,我的眼睛跳过了这一行。我只是想知道,这样我就不必写两次重复的代码了,因为我不知道我的客户机是否会先加载一些元素,然后再注入其余的元素。谢谢你帮我澄清:)一个问题。。。on()
是否能够以最初加载的元素和后来注入DOM的元素为目标?@ICU222非常-是的,非常重要-它绑定到父元素(或文档)然后从那里“找到”目标元素-因此它们需要“在”中需要在绑定时存在的父元素—当它最初运行时。我添加了一个示例,以便您可以在需要时看到它的运行。
$(".myTargetElement").on("click", function(){
// do my click stuff here
});
$("#myid").on("click",".myTargetElement", function(){
$(this).css('color','blue');
});
$('.myTargetElement').eq(0).clone().text("New").appendTo('#myid');