背景描述:
在一个主页面中有一个<div id="myDiv"/>,还有一个加载页面按钮load,点击时通过ajax的方式加载一个table.jsp页面,在table.jsp页面中有一个表格table,一个按钮addRow(图片按钮,点击表格添加一行),在每一行的后面有一个删除按钮delete(图片按钮,点击删除该行)。
我的做法:
由于delete按钮是动态加入的。所以我用了jquery的live方法,在table.jsp页面中为这些delete按钮添加了click事件,代码如下:
$(
$("img[name^='delete']").live("click",function(){alert("delete");//do something});
)
我的烦恼:
当多次点击load按钮时,假设5次,那么在点击delete按钮删除一行时,alert会弹出5次,即在delete上利用live注册的click事件执行了5次。老天啊。这是为啥,赶紧看看live的原理。
我的理解:
在jQuery的API上有这样一段话:.live() 方法能对一个还没有添加进DOM的元素有效,是由于使用了事件委托。传递给 .live() 的事件处理函数不会绑定在元素上,而是把他作为一个特殊的事件处理函数,绑定在 DOM 树的根节点上。
所以说点击load按钮多次,加载table.jsp页面多次,也就意味着在DOM树的根节点上绑定了多个相同的响应方法,点击delete按钮时,这些多次绑定的方法都会响应。
我的解决办法:
无奈我只有用笨方法解决了。在页面中去掉了原来的那段jQuery代码:
$(
$("img[name^='delete']").live("click",function(){alert("delete");//do something});
)
新增JavaScript函数:
function deleteRow(){
alert("delete");
//do something
}
并在delete图片按钮上添加onclick事件:
<img onclick="deleteRow()"......../>
结束语
不知道我理解的是否正确,请大虾指正。更希望大虾们能分享自己的想法。
- 大小: 2 KB
分享到:
相关推荐
现在,我们来深入了解一下基于jQuery的插件jQuery LiveUrl,它可以帮助开发者实现在自己的项目中添加这种功能。 jQuery LiveUrl是一款轻量级的前端插件,专门用于获取并显示URL预览信息,其工作原理类似于Facebook...
在本压缩包中,我们有两个版本的jQuery核心库文件:`jquery-1.12.4.js` 和 `jquery-1.12.4.min.js`。前者是未压缩的源代码,适合开发调试使用,后者是经过压缩和优化的版本,适用于生产环境,体积更小,加载速度更快...
1. **live()方法**: 在jQuery 1.2中,`live()`方法首次出现,它允许动态添加到DOM的元素也能响应事件,解决了事件绑定的问题。 2. **$.param()**: 这个方法用于序列化表单数据,常用于构建URL查询字符串,与Ajax...
资源名称:jquery1.7 中文手册 CHM文档(附jquery1.82 chm手册)内容简介:因国内jquery中文手册更新太慢了,等了一段时间实在等不下去了,干脆自己动手做一个丰衣足食,时刻更新. 最后感谢Shawphy提供1.4.1版,jehn提供...
`click(function)`为元素添加点击事件,`bind()`可以绑定多种事件,`live()`(在jQuery 1.7后被`on()`取代)处理动态添加的元素的事件。 4. **动画效果**:`slideUp()`, `slideDown()`, `fadeIn()`, `fadeOut()`等...
jQuery是一个JavaScript框架,自面世以来,以其快速、简洁,能够很轻易地处理HTML文档、控制事件、给页面添加动画和Ajax效果等功能使多很多WEB编程者对其非常热爱,本手册旨在帮助广大jQuery爱好者快速了解jquery库...
jQuery API 1.4.4 中文参考手册.chm,jquery api 下载,jQuery 1.4.4 API 参考文档中文版.rar,jQuery最新版CHM下载,jQuery中文参考手册,jQuery中文版1.4.4参考手册,jQuery 1.4.4 速查表,jQuery中文参考手册,jQuery中文...
在探讨jQuery中的`bind()`, `delegate()`, 和`live()`事件绑定方法的区别时,我们需要深入理解它们在处理DOM事件时的独特方式。这些方法在不同的场景下提供了灵活且高效的选择,帮助开发者创建响应式和动态的Web应用...
**jQuery UI 中文帮助文档详解** jQuery UI 是一个基于 jQuery JavaScript 库的开源项目,它提供了丰富的用户界面组件,使得开发者能够轻松创建交互性强、视觉效果美观的网页应用。这个中文帮助文档是针对jQuery UI...
在本文中,我们将深入探讨如何在Dreamweaver(DW)中配置jQuery提示,这是一个非常实用的功能,可以帮助开发者更高效地编写和调试JavaScript代码,特别是基于jQuery的代码。jQuery是一个广泛使用的JavaScript库,它...
本文给大家带来jQuery UI参考手册,需要的朋友们可以下载看看jQuery UI 特性简单易用继承 jQuery 简易使用特性,提供高度抽象接口,短期改善 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
今天我们将深入探讨jQuery中的事件绑定方法,包括`bind()`, `live()`, `delegate()`,以及后来推出的`on()`方法。这四个方法都是为了帮助开发者更方便地管理页面上的事件,特别是对于动态生成的元素。 1. **bind()*...
在本文中,我们将深入探讨jQuery 1.5版本的中文API,帮助开发者更好地理解和运用这一经典版本。 一、选择器(Selectors) jQuery的选择器基于CSS,使得选取DOM元素变得异常简单。例如,`$("#id")`用于选取ID为"id...
**jQuery 1.8.0 简介** jQuery 是一个高效、易用且功能丰富的JavaScript库,它极大地简化了JavaScript编程,特别是DOM操作、事件处理以及Ajax交互。jQuery 1.8.0 是该库的一个重要版本,发布于2012年8月13日,它...
本指南将深入探讨《jQuery API 1.4(中文)》及jQuery 1.4.2版本中的关键知识点,帮助开发者更好地理解和运用这一版本的特性。 一、jQuery库的基本概念与应用 jQuery库是John Resig在2006年创建的一个JavaScript库...
**jQuery 1.7 中文API** jQuery是一个广泛使用的JavaScript库,它极大地简化了JavaScript的DOM操作、事件处理、动画制作...同时,jQuery 1.7版本的改进和新特性为JavaScript开发带来了更高的效率和更好的用户体验。
1. **性能提升**:在 1.4.1 版本中,jQuery 团队专注于提高库的性能,特别是针对 DOM 操作和事件处理进行了优化。 2. **新的选择器引擎Sizzle**:这个版本引入了 Sizzle,一个独立的选择器引擎,增强了 jQuery 的 ...
- **性能优化**: jQuery1.3对内部代码进行了优化,提高了选择器的执行速度,尤其是在大型DOM树中。 - **$.ajax()改进**: 引入了`json`数据类型和`dataType`选项,增强了AJAX请求的灵活性。 - **live()方法**: ...
jQuery是一个流行的JavaScript库,它极大地简化了网页中的DOM操作、事件处理、动画效果以及Ajax交互。这个离线手册包含了2012年12月15日版本的jQuery 1.8.3,对于那个时期的项目来说,这是一个广泛使用的稳定版本。 ...
jquery-3.7.0.min.js(jQuery下载)jquery-3.7.0.min.js(jQuery下载)jquery-3.7.0.min.js(jQuery下载)jquery-3.7.0.min.js(jQuery下载)jquery-3.7.0.min.js(jQuery下载)jquery-3.7.0.min.js(jQuery下载)...