append追加元素绑定事件无效的解决办法

问题是:通过jQuery append(或者before、after,一样)新添加进网页的元素,常用的事件不能触发,比如:append了id 为 abc 的元素,那么 $(#abc).click(function(){})是没有效果的。

1. 网上说要用live()函数,亲测无效,应该是jQuery的版本问题,反正到目前为止是不能用了;

2. 解决方法:用on函数,要注意格式(楼主搞了半天,因为格式不对,哎,不说了…都是泪)

正确格式: $("outerSelector").on(‘eventType‘,‘selector‘,function(){});

outerSelector 是一个一直存在的DOM, selector是你要监听点击的节点;

   例子: $(function(){
            $("form").on(‘click‘,"[class=‘image‘]",function(){
                this.remove();
            })
        })

突然发现各种知识深似海啊 要努力学习

时间: 2025-01-06 01:00:18

append追加元素绑定事件无效的解决办法的相关文章

处理jQuery append加入的元素 绑定事件无效的方法

通过jquery append(或者before.after,一样)新添加进网页的元素,常用的事件不能触发,比如:append了id 为 abc 的元素,那么 $(#abc).click(function(){})是没有效果的. 解决方法:用on函数 一直以为on函数只有2个参数 正确格式: $("outerSelector").on('eventType','selector',function(){}): outerSelector 是一个一直存在的DOM, selector是你要

vue中使用轮播图插件carousel,克隆的图片点击事件无效的解决办法

1 <div class="students-box" @click="clickSwiper"> 2 // 将点击事件绑定在父元素上 3 <carousel 4 :items="5" 5 :autoplay="true" 6 :nav="true" 7 :margin="20" 8 :loop="true" 9 :autoplayTimeout=&

关于苹果手机点击事件无效的解决办法

最近在开发一个公众号,有一个点击事件,在安卓手机上可以使用,但是放在苹果手机上就不行了,而且有两个页面都有这个点击事件,第一个页面在苹果手机上可以正常使用,第二个页面就不行,第一个页面使用的是 $('选择器').click(function(){}) 第二个页面使用的是事件委托 $('选择器').on('click','选择器',unction(){}) 看网上的回答是给事件源添加  cursor:pointer  ,但是还是不行,最后我把click事件换成了touchstart 事件就可以了,

Angular如何给动态生成的元素绑定事件

在AngularJS中,操作DOM一般在指令中完成,事件监听机制是在对于已经静态生成的dom绑定事件,而如果在指令中动态生成了DOM节点,动态生成的节点不会被JS事件监听. 举例来说: angular.module('myapp',[]) .directive('myText',function(){ return{ restrict:'A', template:'<div ng-click="hello()">Hi everyone</div>', link:

Js为Dom元素绑定事件须知

为异步加载的Dom 元素绑定事件必须在加载完成之后绑定: $('body').load('LearnClickBinding.ashx');$('a').click(function () { alert('I was clicked!'); }); 上面的绑定是无效的,因为异步加载需要时间,而在获取元素之前,早已执行了$('a').click();方法,所以绑定失败. 正确的做法是,等待元素加载完后再执行 $('a').click(); $('body').load('LearnClickBi

jquery生成元素注册事件无效,及事件委托的使用

在页面加载完成之后,我们在页面操作用js生成html代码到页面,动态的添加元素带页面上 但是,这里可能很多人就必须碰到的一个问题就出现了,当你之后动态添加了元素到页面上,发现这个元素的绑定事件无效,如click点击了根本没有作用 这里就要用到事件委托让未来元素能绑定事件 方法一 $("div").delegate("#id", "click", function(){ ...............}); 这样做就能保证你未来生成的元素也能绑定单

jQuery-为动态添加的元素绑定事件

样例: $("#modify_nick").click(function () { $(this).css("display","none"); $("#nickname_span").empty(); var input = document.createElement("input"); $(input).attr("type", "text"); $(input

06 同时给多个元素绑定事件

1 要求 同时给多个相同元素绑定相同的时间 例如:给一个无序列表中的每一个li元素绑定一个事件,单击每个li元素的时候改变背景颜色和文本颜色 2 思路 利用jQuery的on()实现同时绑定 3 准备 3.1 jQuery的 on()方法 怎么使用? 在选择元素上绑定一个或多个事件的事件处理函数. on()方法绑定事件处理程序到当前选定的jQuery对象中的元素.在jQuery 1.7中,.on()方法 提供绑定事件处理程序所需的所有功能.帮助从旧的jQuery事件方法转换,see .bind(

如何用js为动态生成的元素绑定事件

今天在开发项目的时候,需要为用js动态生成的元素绑定一个click事件,但是在页面加载之前,这个元素不存在,没法获取这个元素,然后为其添加事件.查阅jquery api 发现可以用on()事件(注意:新版本的jquery已经把live()去除,现在用on()),为动态生产的元素绑定事件,然后触发该事件执行.比如下面一个例子: 假设我们要给div动态添加的span绑定click事件形成如下结果 x //做法如下: ("#choose_result").on("click&quo