用click事件调用ajax 第一次点击有用,第二次就失效了

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用click事件调用ajax 第一次点击有用,第二次就失效了相关的知识,希望对你有一定的参考价值。

用click事件调用ajax 然后把刷新的html代码写到下面的id层里,ajax里的url我也加了随机数,第一次点击可以,第二次就失效了,但是如果把刷新的HTML代码不写到下面的div层里面而是用alert(data)弹出 ,每次都点击一次都有弹出数据,而且是刷新的,为什么会这样,alert(data)可以,$("#id").html(data)就失效了,请高手帮忙,先谢谢了

我怀疑是因为你的$("#id")取不到那个刷新出来的DOM节点,你的#id的html是ajax动态写进来的吗?追问

为什么会取不到刷新出来的节点啊,,,要怎么解决

追答

用$("#id").live试试

追问

ok了,谢谢,用JS事件,不用JQUERY就可以了,

参考技术A 你收到的的html代码把页面的js处理覆盖了吧,有代码么 参考技术B 最好把代码贴出来,也许是你全角半角的问题,否则没法帮你解答。

click事件的累加绑定,绑定一次点击事件,执行多次

  最近做项目为一个添加按钮绑定点击事件,很简单的一个事情,于是我按照通常做法找到元素,使用jquery的on()方法为元素绑定了点击事件,点击同时发送请求。完成后看效果,第一次点击没有问题。再一次点击后发现发送了两次请求,后面再点击发现请求的数量越来越多。这时我初步判断可能是元素有多个或是多次调用了方法,但找了一遍,发现只为一个元素绑定了事件,且只调用了一次。后来通过查资料才知道是点击事件被累加绑定了!那到底什么是累加绑定呢?什么时候会发生累加绑定?累加绑定后该如何解决呢?下面我就通过这三个问题来说一下。

  

 1 $("#adsCollection_tb .contentDel").on("click",function(){
 2   $(this).each(function(){
 3    var obj_address_name = $(this).parent().parent().find(".obj_address_name").html();
 4       var jsonDel = {
 5           "head": {
 6             "module": "object",
 7             "function": "del_obj"
 8            },
 9            "body":[
10                   {
11              "name": obj_address_name
12                    }
13                    ]
14             }
15         alert("确定要删除这一条吗?")
16         addrGroup.Ajax(jsonDel);
17                         
18    });
19 });

 

  在页面中为一个元素绑定事件,事件执行后页面未刷新且元素还在,然后你再次点击,元素又被绑定个一次点击事件,这样第二次点击就会执行两次,以此类推。

  如何解决累加绑定:第一种方法是元素点击后删除,然后再动态创建一个元素,再添加点击事件。显然这个方式很麻烦。

  第二中方法是使用jquery的one()方法,为元素绑定一个一次性的事件处理函数,这个事件处理函数只会被执行一次。

  

1 $("#adsCollection_tb").one("click",function(){
2    alert("执行"); 
3 })

 

  第三种方法是在每次绑定点击事件前先解除之前的事件绑定,再为元素绑定事件,类似于先清空,在做操作一样。但你使用bind()方法绑定时,可以用unbind()方法解除绑定。通常我们跟愿意用on()方法绑定事件,因为bind()方法已经不被推荐,那么那么就用off()方法解除事件绑定。

1 $("#adsCollection_tb").unbind("click").bind("click",function(){
2     alert("执行"); 
3  });
4  $("#adsCollection_tb").off("click").on("click",function(){
5     alert("执行"); 
6 });

  

以上是关于用click事件调用ajax 第一次点击有用,第二次就失效了的主要内容,如果未能解决你的问题,请参考以下文章

用jquery,实现让快速双击只调用一次对象的click事件。

Jquery Click 事件在第二次点击时触发,但不是第一次

jquery绑定click事件出现点击一次执行两次的问题

jquery中click事件的累加绑定,点击一次,执行多次

点击页面其它地方隐藏该div的两种思路

click事件的累加绑定,绑定一次点击事件,执行多次