append 添加的元素重新绑定事件】的更多相关文章

在jQuery当中append是动态向页面中添加元素的常见方法,但是很多时候append添加之后的节点再次绑定事件(比如click)的时候,就会发现click失效,这时候就会涉及到,on() 高版本的jQuery中.on()启用之后bind和live都已经失效. 再说上面的问题,如$(".DIV").append("<li>123</li>"),这时候用$(".DIV").click()方法绑定就会发现click事件没有绑…
动态生成的元素,使用.on绑定事件,比如$(document).on("click",".divclick",function(){})…
<div class='a'> <div class='b'> </div> 其中$('.a')是html页面的元素,$('.b')是jq动态添加的元素.$(".b").click(function(){})方法失效 原来jq中动态添加的元素不能直接使用$(".b").click(function(){});的方法,要使用$(".a").on('click','.b',function(){}); $(&quo…
最近因为工作关系又重新回归到了jquery的怀抱,发现很多jquery的一些细节处理的部分都忘记了.这里记录一下最近在做项目时频繁遇到的一个问题:给异步加载的元素添加事件绑定. 问题发生的前提是项目前端开发使用了jquery 和 artTemplate技术,其中经常要通过artTemplate的template.compile()方法来实现像是向下滚动鼠标动态加载后续分页的内容并显示在页面上这样的效果. 在jquery官网上关于事件绑定和事件委托的4个方法中有这样的介绍: live():jQue…
今天遇到一个问题,动态创建的元素,绑定事件无效,如下: js 代码如下: var OaddX = $('.detright div.duibi div.duibox ul li span'); // 所有的X; var Ojiaru = $('.detright div.duibi div.duibox div.tiao li button'); // 添加新车对比按钮 OaddX.on('click',function(){ var OspanX = $('.detright div.duib…
移动端手机ios网页,apppend添加html class名用 on()方法没效果 解决方案:在html里面给需要点击的元素加一个onclick="javascript:void(0)" 就好了: 主要原因是之前dom中没有没有append添加的元素 解决方法就是在click之前重新获取添加后的dom, 贴代码: $(document).on('click','.single-option-li',function (){ $(this).addClass('selected').s…
在使用jquery操作时,往往需要动态的添加一些元素,但是这些新加入的元素并没有像css那样被赋予原本定义的样式,解决方法如下: 1.动态插入元素后,并用bind事件给新加入的元素绑定事件. 2.如果使用的是jquery 1.8以下的版本,可以使用live()方法进行绑定. $(function(){ $("a").live("click", function(){ alert("ok"); }); }); 3.使用on()方法来给元素绑定事件(…
如果使用Jquery给元素绑定事件,一般会用bind,或者类似click函数来直接绑定. 但是对于动态生成的元素,会发现常规绑定无法生效,比如: <div class'div'></div> 动态给div添加元素: $('.div').append($('<a>点我</a>')) 此时如果想给div下的a绑定事件,使用: $('.div>a').click(function(event){ alert('点击成功'); }); 将发现无法触发alert…
jQuery 1.9/2.0/2.1及其以上版本无法使用live函数了,然而jQuery 1.9及其以上版本提供了on函数来代替.本文讲解了jQuery on函数的使用方法,以及在使用jQuery函数中遇到的一些问题. $(selector).on(event,childSelector,data,function,map) 各个参数说明如下: 参数 描述 event 必需.规定要从被选元素移除的一个或多个事件或命名空间.由空格分隔多个事件值.必须是有效的事件. childSelector 可选…
使用YII在做一个点击小图.能够在弹出窗体中显示大图的功能的时候,发现.GridView首页面的列表项按点击时一切正常,但按下了下一页后. 再点击小图,就不起作用了.原来,这是GridView使用了ajax分页,分页后的元素是新添加的,所以不会绑定事件,要改变这种状况,能够例如以下方法解决. 原来的代码:admin.php $(document).ready(function(){ $(".r_img img").click(function(){ var path=$(this).a…
今天在做项目的时候,遇到了一个前端的问题,坑了我好长时间没有解决,今天就记录于此,也分享给大家. 问题是这样的,首先看看我的界面,有一个初始印象: 下面是操作列所对应的JS代码: { "data": function (datas) { return "<a data-url='/Device/Edit?id=" + datas.Id + "' data-toggle='modal' class='btn btn-sm btn-default btn…
弄了很久却没有弄出来,感觉没有错,但是动态元素上的事件根本就不响应,代码如下: <input type="button" id="btnyes" value="确定" /> <div id="divcontent"> </div> <script> $(function () { $("#btnyes").on("click", funct…
首先要明白浏览器在加载页面的时候是按顺序来加载的,这样以来就很清楚了,js动态添加dom以后,这些dom并没有绑定事件,这个时候最简单的一个办法就是:将绑定事件的方法封装到一个函数A中,在动态添加完dom以后立即执行一次函数A即可. 需要注意的是,在你可能同事需要添加许多的dom,不要添加一个就执行一次函数A,这样会增加浏览器的负载,你需要在所有dom添加完以后在执行函数A,例如你用一个for循环遍历dom组合并拼接成一个字符串,然后添加到某个父级dom里面,这个时候你需要在循环外添加一次就可以…
以前总觉得自己写的代码不太规范,尤其是写原生的时候.举个例子: 要为页面上所有".a"的元素绑定事件,当然了用jquery很方便:$('.a').bind("click",fn); 原生的话,我们很多会这样写: for(var i=0;i<length;i++){ elem[i].onclick=function(x){return function(){}}(i); } 但是如果,我要连续绑定两个事件呢? for(var i=0;i<length;i+…
父页面HTML文件: <ul id="faul"> <li class="sonli">子页面列表1</li> <li class="sonli">子页面列表2</li> <li>子页面列表3</li> <li>子页面列表4</li> </ul> 子页面js文件 1.//点击父页面的li元素触发的事件 $(parent.$(&q…
jquery事件绑定有2种方式: 1,普通事件绑定: $('元素').click(function(){}); 2, 事件代理或者叫事件委托 $('#chatPanelList').on('click','.leftMsg .msgDiv .msgText .stionsList li .answerBtn',function(e) {}); 结: 如果动态生成的则无法绑定事件.你可以用事件委托来处理. 产考链接: https://blog.csdn.net/linsygod/article/d…
在页面加载完成时候 '.add_project' 元素是可以触发click时间的,当动态添加 '.add_project' 时候,新添加的元素却触发不了click事件,类似下面的写法: $(".add_project").on('click', function(){ alert('1') }); 解决办法很简单,就是用全局的document来监控 '.add_project' 元素,如下: $(document).on("click",".add_pro…
全选和取消全选 $("#quanxuan").click(function(){ $("input[name='picCheck']").prop("checked",this.checked); }); $("#picList").on('click','input',function(){ console.log($("input[name='picCheck']").length); $("…
<html> <head> <script type="text/javascript" src="/jquery/jquery.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("button").live("click",function(…
两种类型1.$('li').bind('click',function(){}); 当你用js动态添加li的时候,你添加的li不具有你绑定的事件.这种写法与$('li').click(function(){})一样.2.$('li').live('click',function(){}); 当你用js动态添加li的时候,你添加的li具有你绑定的事件…
今天用ajax实现动态插入数据时发现监听一直不起作用,一样的代码,非动态的就可以监听实现 这是困扰了我近一个小时的bug,后面才理解到可能是动态插入导致的! 看了看网上的解决方案,似乎都不太通俗,讲的也不周全,记录一下,这是成长的印记! 废话不多说,直接看问题上方案! <tbody> <tr> <th><a href=""></a></th> </tr> </tbody> //如上述代码中t…
正常情况(即非动态插入 DOM 对象)下,ng-click 这样的指令之所以有效(即点击之后能调用注册在可见作用域里的方法),是因为 angular 在 compiling phase(编译阶段)将宿主 DOM 对象(即加入了 ng-click 指令的 DOM 对象)绑定在当前作用域内了. 换言之,当前作用域知道有这个绑定了 ng-click 的 DOM 对象存在,所以 ng-click 才会起作用. 而在你的例子里,HTML 片段是在 compiling phase 后动态插入到 DOM 树中…
1.错误叙述性说明 于IE览器上: Uncaught HierarchyRequestError:Failed to excute 'appendChild' on 'Node':The new child element contains the parent. 在谷歌浏览器上: SCRIPT5022:DOM Exception:HIERARCHY_REQUEST_ERR(3) error 2.错误原因 在append()中包括append() 如: append(append("String…
var svg = document.createElementNS("http://www.w3.org/2000/svg", "svg"); svg.setAttribute("); svg.setAttribute("); svg.addEventListener("load", function () { alert('loaded'); }); document.body.appendChild(svg); 以上代码…
https://blog.csdn.net/mht1829/article/details/72633100 https://blog.csdn.net/qq_39215166/article/details/74452366 { field: 'operate', title: '操作', width: '80px', events: operateEvents1, formatter: operateFormatter }, window.operateEvents={ //修改 "clic…
<!-- Copyright 2017-10-27, Jachin QQ: 381558301 Email: 381558301@qq.com 请看看你们的版本并对号入座: jquery1.6版本以下都不支持on委托事件 jquery1.3 至 jQuery1.8版都支持live委托事件 jquery1.9 以后的版本不支持live委托事件,但是on事件可以替代live jquery1.3版本以下的(不包括jquery1.3),是时候更新你的jquery版本了.因为 无解无解无解无解无解无解 如…
避免先写了DOM操作,但是元素是动态加载的,所以点击不生效,比较好的方法有两个: 1.动态添加的时候加行内事件,比如onclick="funcName()" 在js中写好方法名对应的方法就可以了,如果绑定方法的元素太多,可以考虑使用方法二: 2.jquery的on事件绑定 eg: on事件可以给动态添加的元素也绑定事件. $("#optionGroup").on('click','.input-group .delete-option',function () {…
我们可以通过 $(document).on('click', '#xxx', callback) 这种形式解决. 原因,一般情况下,我们是通过 $('#xxx').click(callback) 这种形式去绑定,这种绑定之所以生效是因为,我们程序加载 $(function(){}) 的时候绑定了回调,而动态添加上去的,我们并没有去绑定. 所以动态添加的元素,点击的时候并不会触发我们想要的效果.但是实际上,在我们点击的时候,还是产生了点击事件,只是这个事件没有被我们的预期回调处理,因为我们的回调没…
$('input').click(function () { //处理代码 }); 这只能是对已经加载好的元素定义事件,那些后来添加插入的元素则需要另行绑定,对于页面中动态添加的元素,在页面加载完成后添加的,因此页面加载时无法给其绑定事件处理函数,好在jquery提供了on方法,如为动态添加的元素附加单击事件.对于jquery1.7+的版本直接用on方法, $('body').append('<p id=\"pid\"></p>'); $('#pid').on(…
给Jquery动态添加的元素添加事件 来源:[http://wangqixia.diandian.com/post/2011-05-10/6597866] 我想很多人都会向我一样曾经 被新元素的事件绑定困惑很久也就是在页面加载完成后给元素绑定了事件,但又新增加的元素上却没有绑定任何事件. js的事件监听跟css不一样,css只要设定好了样式,不论是原来就有的还是新添加的,都有一样的表现.而事件监听不是,你必须给每一个元素单独绑定事件. 常见的例子是处理表格的时候.每行行末有个删除按钮,点了这个能…