js与jquery cilick 事件疑惑

  今天在编写前台页面的时候,需要实现这样一个简单的功能:table动态新增tr,然后绑定新增tr子节点元素(input button) 的 onlcick 事件

  说明:点击新增,新增一行,所有值为1的按钮通过jquery绑定click事件,值为的按钮通过js绑定cilck事件

  html代码如下:

          

 1 <table id="table1">
 2     <tr>
 3         <th>1</th>
 4         <th>2</th>
 5         <th><input type="button" id="btn_AddNewRow" value="新增"/></th>
 6     </tr>
 7     <tr>
 8         <td><input type="button" class="btn_Class1" value="1"/></td>
 9         <td><input type="button" value="2"/></td>
10         <td><input type="button" onclick="deltr(this)" value="删除"/></td>
11     </tr>
12 </table>

table

   js部分代码:

 1   <script type="text/javascript">
 2         $(document).ready(function () {
 3
 4             $(".btn_Class1").click(function () {
 5                 alert("hello the world!");
 6             });
 7             //新增一行
 8             $("#btn_AddNewRow").click(function () {
 9                 var html1 = ‘<td><input type="button" class="btn_Class1" value="1"/></td>‘;
10                 var html2 = ‘<td><input type="button" value="2" onclick="SayHello()"/></td>‘;
11                 var html3 = ‘<td><input type="button" onclick="deltr(this)" value="删除"/></td>‘;
12                 $("#table1>tbody").append(‘<tr>‘ + html1 + html2 + html3 + ‘</tr>‘);
13             });
14         });
15         //删除行
16         function deltr(delbtn) {
17             $(delbtn).parents("tr").remove();
18         }
19         function SayHello() {
20             alert("hello the world!");
21         }
22     </script>

js

  这种情况下,js绑定的click事件能够正常触发,但是jq通过类选择器绑定的事件则不能正常触发.(点击1没有反应,点击2能够正常弹出)

  修改后的js代码如下:(通过jq bind 事件动态绑定通过class类选择器获得的元素的click事件)

 1  <script type="text/javascript">
 2         $(document).ready(function () {
 3
 4             /*   $(".btn_Class1").click(function () {
 5              alert("hello the world!");
 6              });*/
 7             //新增一行
 8             $("#btn_AddNewRow").click(function () {
 9                 var html1 = ‘<td><input type="button" class="btn_Class1" value="1"/></td>‘;
10                 var html2 = ‘<td><input type="button" value="2" onclick="SayHello()"/></td>‘;
11                 var html3 = ‘<td><input type="button" onclick="deltr(this)" value="删除"/></td>‘;
12                 $("#table1>tbody").append(‘<tr>‘ + html1 + html2 + html3 + ‘</tr>‘);
13
14                 //通过bind事件绑定click事件
15                 $(".btn_Class1").bind("click", function () {
16                     alert("hello the world!");
17                 });
18             });
19         });
20         //删除行
21         function deltr(delbtn) {
22             $(delbtn).parents("tr").remove();
23         }
24         function SayHello() {
25             alert("hello the world!");
26         }
27     </script>

js

  这样就能够正常触发了。不解(学习笔记。)

  2015-03-31 22:02

asas

时间: 2024-08-10 16:57:30

js与jquery cilick 事件疑惑的相关文章

JS与Jquery的事件委托机制

传送:http://www.ituring.com.cn/article/467 概念: 什么是事件委托:通俗的讲,事件就是onclick,onmouseover,onmouseout,等就是事件,委托呢,就是让别人来做,这个事件本来是加在某些元素上的,然而你却加到别人身上来做,完成这个事件. 举个列子:有三个同事预计会在周一收到快递.为签收快递,有两种办法:一是三个人在公司门口等快递:二是委托给前台MM代为签收.现实当中,我们大都采用委托的方案(公司也不会容忍那么多员工站在门口就为了等快递).

JS与Jquery的事件委托

参考:http://www.ituring.com.cn/article/467 概念: 什么是事件委托:通俗的讲,事件就是onclick,onmouseover,onmouseout,等就是事件,委托呢,就是让别人来做,这个事件本来是加在某些元素上的,然而你却加到别人身上来做,完成这个事件. 举个列子:有三个同事预计会在周一收到快递.为签收快递,有两种办法:一是三个人在公司门口等快递:二是委托给前台MM代为签收.现实当中,我们大都采用委托的方案(公司也不会容忍那么多员工站在门口就为了等快递).

js day44 Jquery(筛选,事件,效果,Ajax,javascript跨域)

1     筛选[掌握]     筛选与之前"选择器"雷同,筛选提供函数 1.1   过滤 eq(index|-index),获取第N个元素 ?index:一个整数,指示元素基于0的位置,这个元素的位置是从0算起. ?-index:一个整数,指示元素的位置,从集合中的最后一个元素开始倒数.(1算起) first(),获取第一个元素 last(),获取最后个元素 hasClass(class),检查当前的元素是否含有某个特定的类,如果有,则返回true. filter(exp

30 jQuery——操作事件

jquery动态事件 添加事件 元素对象.bind("事件名",fn);//动态的给指定的元素追加指定的事件,多次点击将追加多个重复函数 移除事件 元素对象.unBind("事件名"); 添加一次性事件: 添加的函数执行一次后失效 元素对象.one("事件名",fn) 页面载入事件: 注意不要写在函数里 $(document).ready(fn);fn表示函数对象function 页面载入成功后会调用函数对象.而且这个方式写多个,不会覆盖. 测试

HTML5 audio元素如何使用js与jquery控制其事件

前言: 每一次遇见问题想到的就是怎么解决?最好的方法还是查询网络媒体,更好的办法是让自己记忆,只有自己理解到了才真正是属于自己.要做一个订单提醒功能,没有使用audio相关的插件,虽然插件无数,还是喜欢自己瞎折腾.(来一些隐形的链接,据说有推广效果,本文原创官网地址:www.pushself.com) 听一个写博客的朋友说周末的博客阅读量明显下降,周末大好时光不出去泡妹子的肯定是有难言之隐的.先来重温一下audio标签的基本属性 定义和用法 <audio> 标签定义声音,比如音乐或其他音频流.

jquery和js操作,【包含jquery挂事件】

JS根据ID取元素,取到的是具体的元素  var a = document.getElementById("p1");根据CLASS取  var a = document.getElementsByClassName("aa");根据标签名取  var a = document.getElementsByTagName("div");根据name取  var a = document.getElementsByName("cc"

js 事件冒泡是什么如何用jquery阻止事件冒泡

什么是事件起泡:一个事件不能凭空产生,这就是事件的发生等等,接下来为大家介绍下jquery阻止事件起泡以及关于js事件起泡的验证,感兴趣的朋友可以参考下哈 (1)什么是事件起泡 首先你要明白一点,当一个事件发生的时候,该事件总是有一个事件源,即引发这个事件的对象,一个事件不能凭空产生,这就是事件的发生. 当事件发生后,这个事件就要开始传播.为什么要传播呢?因为事件源本身并没有处理事件的能力.例如我们点击一个按钮时,就会产生一个click事件,但这个按钮本身不能处理这个事件(废话),事件必须从这个

js和jquery中的事件委托

[转+自己的修改] 概念: 什么是事件委托:通俗的讲,事件就是onclick,onmouseover,onmouseout,等就是事件,委托呢,就是让别人来做,这个事件本来是加在某些元素上的,然而你却加到别人身上来做,完成这个事件. 举个列子:有三个同事预计会在周一收到快递.为签收快递,有两种办法:一是三个人在公司门口等快递:二是委托给前台MM代为签收.现实当中,我们大都采用委托的方案(公司也不会容忍那么多员工站在门口就为了等快递).前台MM收到快递后,她会判断收件人是谁,然后按照收件人的要求签

js 与jquery 同时绑定一个ID onclink事件

事例代码: <%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"