很多人见都没有见过的jquery灵异事件 (解决给100分)

Solo丶慕颜 java软件工程师  2015-11-23 09:54:52
这段时间使用jquery来编写项目的时候发现了一个很烦人的问题,一直都没有解决,希望贴吧里的大神们来帮忙看看。当我调用调用触发了删除函数之后返回数据会调用上面的do_fenye方法。可是每次删除数据的时候,发生了灵异现象,原因不明。现象是删除方法调用之后,会调用两次do_fenye方法,也就是查询了两次,看了很多相关问题的帖子,说是要在绑定新事件之前先接触绑定,但是这种方法也尝试了一下,还是解决不了。万能的天朝大神,求围观,在线等。

$(function(){
$("body").on("click",".do_fenye",function(){
alert("1");
var pageFind = $("#pageFind").val();
var pageMax =$(this).data("pagemax");
if(!pageMax)pageMax=1;
var param = {};
if(pageFind){
if(pageFind>0&&pageFind<=pageMax){
param["pageFind"]=pageFind-1;
}else{
alert("超出范围!");
return false;
}
}
var entname = $("#entname").val();//取entname的值
if(entname){
param["entname"]=entname;
}
param["pageNum"]=pageNum;
var pageIndex = $(this).data("pageindex");
if(!pageIndex)pageIndex=0;
param["pageIndex"]=pageIndex;
$.ajax({
url:path+"myd/pageFind",
dataType:"json",
data:JSON.stringify(param),
type:"post",
contentType:"application/json",
success:function(data){
if(data){//判断后台是否有值返回
$("#mycontent_view").html("");//
$("#mycontent_view_tmpl").tmpl(data).appendTo("#mycontent_view" );//
if(data.pageIndex<1){
$("#do_left").hide();
}else{
$("#do_left").show();
}
if(data.pageIndex>=data.pageMax-1){
$("#do_next").hide();
}else{
$("#do_next").show();
}
}
},error:function(){
alert("请求异常!");
}
});
});
$("#do_delete").click(function(){
var entid=$("#del_entid").val();
var param={};
if(entid){
param["entid"]=entid;
}
$.ajax({url:path+"myd/deleteInfo",
contentType:"application/json",
dataType:"json",
data:JSON.stringify(param),
type:"post",
success:function(data){
$("#delModal").modal('hide');
$(".do_fenye").click();
},
error:function(){
alert("请求异常!");
}
});
});

)}
...全文
117 8 点赞 打赏 收藏 举报
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Solo丶慕颜 2015-11-23
引用 2 楼 mu_mu_zi 的回复:
在on之前.off解绑一下试试呢
试过了, 没有什么用啊~ 删除一条信息之后动不动就调用了4次分页方法
  • 打赏
  • 举报
回复
mu_mu_zi 2015-11-23
在on之前.off解绑一下试试呢
  • 打赏
  • 举报
回复
Solo丶慕颜 2015-11-23
补充:使用的是jquery 2.0版本,jsp页面使用了jquery tmpl模板,删除的按钮我设置在模板内,同时还有修改按钮也是放在模板内,但是修改之后调用do_fenye方法,只执行一次。
  • 打赏
  • 举报
回复
Solo丶慕颜 2015-11-23
引用 5 楼 yanghaimingg 的回复:
$(".do_fenye").click(); 你这个是类选择器,看看是不是多个地方引用了class="do_fenye"
没有,不过还是得谢谢你让我找到了这个地方,因为取方法的方式有问题,我刚刚已经解决问题了
  • 打赏
  • 举报
回复
引用 6 楼 ko289830707 的回复:
[quote=引用 4 楼 shijing266 的回复:] $("body").delegate(".do_fenye","click",function(){ 改成这样试试,动态绑定click事件
谢谢,不是这个问题[/quote] 那你在 success:function(data){ $("#delModal").modal('hide'); $(".do_fenye").click(); alert("123"); } 这句的下面加个alert("123"); 看看是delete调用了两次,还是那个查询方法查了两次
  • 打赏
  • 举报
回复
Solo丶慕颜 2015-11-23
引用 4 楼 shijing266 的回复:
$("body").delegate(".do_fenye","click",function(){ 改成这样试试,动态绑定click事件
谢谢,不是这个问题
  • 打赏
  • 举报
回复
mtian2020 2015-11-23
$(".do_fenye").click(); 你这个是类选择器,看看是不是多个地方引用了class="do_fenye"
  • 打赏
  • 举报
回复
$("body").delegate(".do_fenye","click",function(){ 改成这样试试,动态绑定click事件
  • 打赏
  • 举报
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2015-11-23 09:54
社区公告
暂无公告