jQuery将动作应用于被注入的元素

时间:2012-11-13 19:39:51

标签: javascript jquery html

在页面加载后,我有一些页面的元素被库注入。这些元素具有onClick操作,由jQuery控制。由于在加载页面后呈现这些项目,jQuery是否会针对这些项目应用onClick操作?

2 个答案:

答案 0 :(得分:5)

这是使用委托事件的典型情况,其中您使用作为参数传递的特定选择器将处理程序绑定到父元素,并且仅当匹配选择器是触发事件的选择器时,jQuery才会触发处理程序。

详细了解直接和委派活动下的jQuery文档 - > http://api.jquery.com/on/

.on( events [, selector] [, data], handler(eventObject) )
     

events - 一个或多个以空格分隔的事件类型和可选项   名称空间,例如“click”或“keydown.myPlugin”。

     

selector一个选择器字符串,用于过滤所选的后代   触发事件的元素。如果选择器为null或省略,   事件总是在到达所选元素时被触发。

     

data当事件发生时,将在event.data中传递给处理程序的数据   触发。

     

handler(eventObject)事件发生时要执行的函数   触发。值false也允许作为a的简写   简单地返回false的函数。

以上是针对稍后可以添加到DOM的动态元素。

注意:

  1. 包含委托事件,应始终将其绑定到绑定处理程序时可用的最近的静态容器。更多信息:Should all jquery events be bound to $(document)?

  2. 但是,最好直接绑定到元素插入到DOM后绑定处理程序可以实现的元素。

答案 1 :(得分:3)

使用表格:

$("#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>

注意:此表单绑定到文档而不是父元素,强制文档遍历,因此不建议最佳:

$(".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');