jquery动态添加元素事件失效问题解决方法
今天在写JQUERY时遇到个问题:当使用脚本动态添加元素xxx时,但事件$(".x .y").click(function)...失效问题。
刚开始网上找到了用live函数,方法如下:
事件绑定:$(".x .y").click(function) 需改为:
代码如下:
$(".x .y").live('click',function);
但是由于1.8版本后live这种方法不再支持,所以需要用下述jquery中on方法解决脚本动态添加元素:
代码如下:
$(".y").on('click','.x',function);
相关推荐
-
jQuery给动态添加的元素绑定事件的方法
本文实例讲述了jQuery给动态添加的元素绑定事件的方法.分享给大家供大家参考.具体分析如下: jquery中绑定事件一般使用bind,或者click,但是这只能是对已经加载好的元素定义事件,那些后来添加插入的元素则需要另行绑定.在1.7版本以前使用live.但是在1.8版本以后推荐使用on.这里介绍jQuery中如何给动态添加的元素绑定事件 在实际开发中会遇到要给动态生成的html元素绑定触发事件的情况 例如 <div id="testdiv"> <ul>&l
-
jQuery中对未来的元素绑定事件用bind、live or on
对未来的元素绑定事件不能用bind, 1.可以用live代替,但是要注意jquery的版本,根据官方文档,从1.7开始就不推荐live和delegate了,1.9里就去掉live了. 2.推荐用on代替(注:1.7及以上的版本才支持).用法:on(events,[selector],[data],fn) 复制代码 代码如下: //放在$(function(){})里才有效 $(document).on("click", "#testDiv", function(){
-
jQuery 绑定事件到动态创建的元素上的方法实例
在进入主题之前,我们先来看一个前台页面经常用到的功能:点击页面输入框时自动选择其中文本. 很容易想到利用输入框的focus事件,当输入框获得焦点时,再调用jQuery的select()方法. Okay,想法很简单,逻辑似乎也无错.具体我们来看一下现实到底能不能实现. 1.页面构造个表单,放上几个输入框.代码看起来是这样子的. 复制代码 代码如下: <form action="/" method="post"> <table>
-
jQuery 判断元素上是否绑定了事件
我研究了一下之后发现,jQuery都将事件缓存起来了,其实也是为了防止内存溢出以及页面unload的时候的速度,也包括多函数触发,方便管理等诸多好处,具体可以参考此文. jQuery会在window.unload的时候卸载所有绑定过的事件,释放内存的. OK,言归正传.判断元素上是否绑定过事件用如下语句 复制代码 代码如下: jQuery.data(elem,"events")[type] //老版本也能用 $(elem).data("events")[type]
-
jquery用data方法获取某个元素上的事件
jquery的给元素绑定的事件可以用data方法取出来 通过$(element).data("events")来获取 // 比如给一个button绑定两个click事件 $("button").click(function() { alert("1") }); $("button").click(function() { alert("2") }); // 这个时候点击该button会分别弹出 2 和1的a
-
JQuery1.8 判断元素是否绑定事件的方法
On previous versions, you could call it like for other data : obj.data('events'); In jQuery 1.8, this direct access was removed, so in recent versions you must call it like this : $._data(obj[0],"events") 大概的意思是版本可以使用obj.data('event'); JQuery1.8
-
JQuery为页面Dom元素绑定事件及解除绑定方法
1.绑定事件 复制代码 代码如下: $('#id').bind("click",function(){ ... }) 可一次性绑定多个事件 复制代码 代码如下: $('#id').bind("click mouseover mouseout",function(){ ... }) 2.解除绑定 复制代码 代码如下: $('#id').unbind("click") 3.绑定一次 复制代码 代码如下: $('#id').one("clic
-
iframe里面的元素触发父窗口元素事件的jquery代码
例如父窗口定义了一个事件. top: $(dom1).bind('topEvent', function(){}); 那么iframe里面的元素怎样触发父窗口dom1的事件呢?这样吗? $(dom1, parent.document).trigger('topEvent'); 看似正确,实则误导人. 因为父窗口的jquery对象与iframe里面的jquery对象实际为两个对象(function),iframe里面的jquery并不会触发另一个jquery对象定义的事件.除非你在iframe这样
-
jquery移除、绑定、触发元素事件使用示例详解
复制代码 代码如下: unbind(type [,data]) //data是要移除的函数$('#btn').unbind("click"); //移除click$('#btn').unbind(); //移除所有 对于只需要触发一次的,随后就要立即解除绑定的情况,用one() 复制代码 代码如下: $('#btn').one("click",function(){.......}); 触发操作trigger() 方法触发被选元素的指定事件类型. 复制代码
-
jQuery实现在新增加的元素上添加事件方法案例分析
本文实例讲述了jQuery实现在新增加的元素上添加事件方法.分享给大家供大家参考,具体如下: 最近项目组需要在新增的元素上增加时间,有人说用live方法后来使用的时候发现jQuery没有该方法(1.7以上就没了)替换为on 除了jquery api官方的例子外还有以下的例子可以在新增的元素上添加事件 $(document).on("click",'#lyysb a',function(){ if(!$(this).hasClass('cur')){ $(this).addClass('
-
jQuery动态添加的元素绑定事件处理函数代码
我当时的处理方法是在添加的时候手工绑定事件处理函数.不过新版的jquery已经添加了这个功能.我们已经不需要为此烦恼了. 参考:http://api.jquery.com/live/ 以前我们定义事件,比如为元素定义单击事件是这样写的: 复制代码 代码如下: $('input').click(function () { //处理代码 }); 或 复制代码 代码如下: $('.clickme').bind('click', function() { // Bound handler called.
随机推荐
- JavaScript 继承详解(四)
- JavaScript在XHTML中的用法详解
- JavaScript实现俄罗斯方块游戏过程分析及源码分享
- JavaScript的面向对象(二)
- Android编程中activity启动时出现白屏、黑屏问题的解决方法
- pygame学习笔记(2):画点的三种方法和动画实例
- 全面了解python中的类,对象,方法,属性
- mysql source 命令导入大的sql文件的方法
- 在Mac下如何安装phpredis扩展
- vue增删改查的简单操作
- JS动态修改网页body的背景色实例代码
- ECMAScript6轮播图实践知识总结
- PHPMailer发送HTML内容、带附件的邮件实例
- 用Shell判断字符串包含关系的方法小结
- CSS中的滑动门技术
- 基于jquery和svg实现超炫酷的动画特效
- vbs SendKey 用法 Sendkey 键盘对应的码表
- android 左右滑动+索引图标实现方法与代码
- 图片与文字半透明效果 鼠标移上不透明
- 基于C#方法重载的总结详解