`
huaerfan
  • 浏览: 12075 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

jQuery中的live给我带来的烦恼

阅读更多

背景描述:
      在一个主页面中有一个<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
0
0
分享到:
评论
2 楼 wdxiake 2012-07-04  
楼上正解。
1 楼 千道5 2012-05-30  
今天也是遇到你这样的问题。 我右边DIV也是load。

多次实践,后来搞好啦。

最重要的是在jquery load()右边页面之前,使用die()把之前委托清除。

				$(".addRow_ok_save").die();
				$("#pageObject").load("elements.php",{pageId: this_pageId,pageName: this_pageName});

相关推荐

    前端项目-jquery.liveurl.zip

    现在,我们来深入了解一下基于jQuery的插件jQuery LiveUrl,它可以帮助开发者实现在自己的项目中添加这种功能。 jQuery LiveUrl是一款轻量级的前端插件,专门用于获取并显示URL预览信息,其工作原理类似于Facebook...

    jQuery1.12.4+jQuery中文手册.rar

    在本压缩包中,我们有两个版本的jQuery核心库文件:`jquery-1.12.4.js` 和 `jquery-1.12.4.min.js`。前者是未压缩的源代码,适合开发调试使用,后者是经过压缩和优化的版本,适用于生产环境,体积更小,加载速度更快...

    jquery中文参考

    1. **live()方法**: 在jQuery 1.2中,`live()`方法首次出现,它允许动态添加到DOM的元素也能响应事件,解决了事件绑定的问题。 2. **$.param()**: 这个方法用于序列化表单数据,常用于构建URL查询字符串,与Ajax...

    jquery1.7中文手册CHM文档(附jquery1.82chm手册)

    资源名称:jquery1.7 中文手册 CHM文档(附jquery1.82 chm手册)内容简介:因国内jquery中文手册更新太慢了,等了一段时间实在等不下去了,干脆自己动手做一个丰衣足食,时刻更新. 最后感谢Shawphy提供1.4.1版,jehn提供...

    jQuery中文参考手册

    `click(function)`为元素添加点击事件,`bind()`可以绑定多种事件,`live()`(在jQuery 1.7后被`on()`取代)处理动态添加的元素的事件。 4. **动画效果**:`slideUp()`, `slideDown()`, `fadeIn()`, `fadeOut()`等...

    jQuery API 3.3.1 中文手册

    jQuery是一个JavaScript框架,自面世以来,以其快速、简洁,能够很轻易地处理HTML文档、控制事件、给页面添加动画和Ajax效果等功能使多很多WEB编程者对其非常热爱,本手册旨在帮助广大jQuery爱好者快速了解jquery库...

    jQuery API 1.4.4 中文参考手册.chm

    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()事件绑定

    在探讨jQuery中的`bind()`, `delegate()`, 和`live()`事件绑定方法的区别时,我们需要深入理解它们在处理DOM事件时的独特方式。这些方法在不同的场景下提供了灵活且高效的选择,帮助开发者创建响应式和动态的Web应用...

    JQuery UI 中文帮助文档

    **jQuery UI 中文帮助文档详解** jQuery UI 是一个基于 jQuery JavaScript 库的开源项目,它提供了丰富的用户界面组件,使得开发者能够轻松创建交互性强、视觉效果美观的网页应用。这个中文帮助文档是针对jQuery UI...

    DW中配置Jquery提示

    在本文中,我们将深入探讨如何在Dreamweaver(DW)中配置jQuery提示,这是一个非常实用的功能,可以帮助开发者更高效地编写和调试JavaScript代码,特别是基于jQuery的代码。jQuery是一个广泛使用的JavaScript库,它...

    jQueryUI参考手册中文CHM版

    本文给大家带来jQuery UI参考手册,需要的朋友们可以下载看看jQuery UI 特性简单易用继承 jQuery 简易使用特性,提供高度抽象接口,短期改善 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。

    jQuery中bind(),live(),delegate

    今天我们将深入探讨jQuery中的事件绑定方法,包括`bind()`, `live()`, `delegate()`,以及后来推出的`on()`方法。这四个方法都是为了帮助开发者更方便地管理页面上的事件,特别是对于动态生成的元素。 1. **bind()*...

    jquery1.5 中文API

    在本文中,我们将深入探讨jQuery 1.5版本的中文API,帮助开发者更好地理解和运用这一经典版本。 一、选择器(Selectors) jQuery的选择器基于CSS,使得选取DOM元素变得异常简单。例如,`$("#id")`用于选取ID为"id...

    Jquery1.8.0和jquery1.8中文Api

    **jQuery 1.8.0 简介** jQuery 是一个高效、易用且功能丰富的JavaScript库,它极大地简化了JavaScript编程,特别是DOM操作、事件处理以及Ajax交互。jQuery 1.8.0 是该库的一个重要版本,发布于2012年8月13日,它...

    Jquery API 1.4(中文)+ Jquery 1.42

    本指南将深入探讨《jQuery API 1.4(中文)》及jQuery 1.4.2版本中的关键知识点,帮助开发者更好地理解和运用这一版本的特性。 一、jQuery库的基本概念与应用 jQuery库是John Resig在2006年创建的一个JavaScript库...

    jQuery 1.7_中文API

    **jQuery 1.7 中文API** jQuery是一个广泛使用的JavaScript库,它极大地简化了JavaScript的DOM操作、事件处理、动画制作...同时,jQuery 1.7版本的改进和新特性为JavaScript开发带来了更高的效率和更好的用户体验。

    JQuery1.4.1与JQuery1.8.3

    1. **性能提升**:在 1.4.1 版本中,jQuery 团队专注于提高库的性能,特别是针对 DOM 操作和事件处理进行了优化。 2. **新的选择器引擎Sizzle**:这个版本引入了 Sizzle,一个独立的选择器引擎,增强了 jQuery 的 ...

    jQuery1.3中文参考CHM

    - **性能优化**: jQuery1.3对内部代码进行了优化,提高了选择器的执行速度,尤其是在大型DOM树中。 - **$.ajax()改进**: 引入了`json`数据类型和`dataType`选项,增强了AJAX请求的灵活性。 - **live()方法**: ...

    jquery中文版离线手册

    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下载)jquery-3.7.0.min.js(jQuery下载)...

Global site tag (gtag.js) - Google Analytics