body click的绑定与元素click的绑定

1、通常使用jQuery绑定click如下:

$(‘div.class‘).on(‘click‘,function(){
    ......
})

此种方式无法绑定动态新增的元素,如:

$(‘div.demo‘).on(‘click‘,function(){
    $(this).removeClass(‘demo‘); //A
    $(this).siblings().addClass(‘demo‘);
})

元素A移除class.demo,他的兄弟节点添加class.demo,按理他的兄弟节点添加class后也绑定了click事件,可并非如此

解决方案:

$(‘body‘).on(‘click‘,‘div.demo‘,function(){
    $(this).removeClass(‘demo‘);
    $(this).siblings().addClass(‘demo‘);
})

绑定body,然后传入元素参数,可绑定动态添加的元素。

另外在重新初始化数据后(如搜索查找更新),为防止click多次触发,先接触绑定

$(‘body‘).off(‘click‘);
$(‘body‘).off(‘keypress‘);
...
时间: 2024-11-11 09:19:30

body click的绑定与元素click的绑定的相关文章

绑定live bind click

Jquery中绑定事件有三种方法:以click事件为例 (1)target.click(function(){}); (2)target.bind("click",function(){}); (3)target.live("click",function(){}); 第一种方法很好理解,其实就和普通JS的用法差不多,只是少了一个on而已 第二.三种方法都是绑定事件,但是二者又有很大的不同,下面着重讲解一下,因为这个如果用到Jquery的框架的话是用的挺多的,尤其要

Jquery中的事件绑定$("#btn").bind("click",function(){ })

Jquery中的事件绑定:$("#btn").bind("click",function(){  }) 因为每次都这么调用太麻烦,所以jquery就用$("#btn").click(function(){})来进行简化 Jquery中的事件绑定$("#btn").bind("click",function(){ })

winform学习之----将多个控件的click方法绑定到同一click方法中

         public Form3()         {             InitializeComponent();             button1.Click +=new EventHandler(button_Click);             button2.Click +=new EventHandler(button_Click);         }         private void button_Click(object sender, Ev

jQuery on()方法绑定动态元素的点击事件无响应的解决办法

$('#check_all').on('click' , function(){ alert(1); }); $("#yujinlist").append(html); count++; } 以上代码执行时,点击#check_all时,alert一直没反应,后在网上查资料时,才知道on前面的元素也必须在页面加载的时候就存在于dom里面, 那原话是这样的: 支持给动态元素和属性绑定事件的是live和on,其中live在JQUERY 1.7之后就不推荐使用了.现在主要用on,使用on的时候

jQuery 判断元素上是否绑定了事件

我研究了一下之后发现,jQuery都将事件缓存起来了,其实也是为了防止内存溢出以及页面unload的时候的速度,也包括多函数触发,方便管理等诸多好处,具体可以参考此文. jQuery会在window.unload的时候卸载所有绑定过的事件,释放内存的. OK,言归正传.判断元素上是否绑定过事件用如下语句 jQuery.data(elem,"events")[type] //老版本也能用 $(elem).data("events")[type] //1.2.3以后才能

JavaScript移除绑定在元素上的匿名事件处理函数

前言: 面试的时候有点蒙,结束之后想想自己好像根本就误解了面试官的问题,因为我理解的这个问题本身就没有意义.但是当时已经有一些思路,但是在一个点上被卡住. 结束之后脑子瞬间灵光,想出了当时没有迈出的那一小步.所以不想计较这个问题本身的意义,单纯的想要把这个我理解错了的问题解决,就当是满足自己一个小小的愿望吧. 问题: 用addEventListener()和attachEvent()给一个DOM元素绑定事件处理程序时,如果传入一个匿名函数,那么用相应的removeEventListener()和

jquery动态生成元素的事件绑定

<html> <head> <meta charset="utf-8"> <meta name="view" content="width=device-width;user-scalable=no;initial-scale=1.0"> <script src="jquery.js"></script> <style> .image-host

jquery on方法 绑定动态元素 出现的问题

之前使用 on 的时候一直是 $("").on('click','function(){  }') 之后发现有些时候一直无法绑定(比如元素动态生成时),查看文档后发现正确用法应该是 $(document).on("change","#pageSize_out",function(){ if($("#page_out").val()!=0){ $("#pageSize").val($(this).val())

新建div触发绑定在元素选择器上的js事件

在Jquery1.8版本之前,使用.live()绑定事件可以在新建div后自动绑定该div所在选择器所绑定的js事件.但是从1.8以后,官方推荐用on方法来绑定事件.那么,用.on()来绑定事件也可以和.live()达到相同的效果:$(document).on('事件','元素选择器',function(){})eg:初始化时对class为"btn"的div绑定了click事件,新建一个class为"btn"的div,使其也绑定该click事件:$("bo