js bind事件

nsky 2013-07-25 04:38:51
我们都知道 这样绑定一个事件 $("#id").click(function(){});

如果其他按钮要要触发这个事件。就可以这样:$("#id").click();

我现在的问题是我要传参数。显然上面的不行。我改用bind

我这样绑定的 :

$("#opener").bind("click", { type: "add" }, showData);

function showData(event) {

if (event.data.type == "add") { //添加数据
//加载数据
getCustmer();
alert("add");
return false;
}
else if (event.data.type == "edit") { //编辑数据
// var id = event.data.id;
// alert(id);

alert("edit");
return false;
}
}


当我在页面点击id为opener的按钮时。会执行 alert("add");。

现在我想当我点击页面另我外一个按钮(id为edit)也触发该事件。并传参数为 edit

我是这样触发的。当点击id为edit按钮时候 执行 $("#opener").click() 这样会执行

但我想传参数。我不会。我这样尝试都不行

$("#opener").click({type:"edit"},showData);

$("#opener").click({type:"edit"});

这样都不对。请大家指教下。谢谢。我刚接触不久。在线等。
...全文
495 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
nsky 2013-07-25
  • 打赏
  • 举报
回复
引用 12 楼 lele4002 的回复:
如果你edit的操作和add不是完全一样,你就改成这样 var showData=function (type) { if (type == "add") { //添加数据 //加载数据 getCustmer(); alert("add"); } else if (type == "edit") { //编辑数据 // var id = event.data.id; // alert(id); alert("edit"); } } $("#opener").click(function(){showData("add")}); $("#aspxGdv_DXMainTable a").click(functioin(){ showData("edit"); //其他操作 });
嗯嗯。好的。谢谢指导。等下结贴。先忙下。
lele4002 2013-07-25
  • 打赏
  • 举报
回复
如果你edit的操作和add不是完全一样,你就改成这样 var showData=function (type) { if (type == "add") { //添加数据 //加载数据 getCustmer(); alert("add"); } else if (type == "edit") { //编辑数据 // var id = event.data.id; // alert(id); alert("edit"); } } $("#opener").click(function(){showData("add")}); $("#aspxGdv_DXMainTable a").click(functioin(){ showData("edit"); //其他操作 });
nsky 2013-07-25
  • 打赏
  • 举报
回复
lele4002的方式是正确的。只是我写错了。暂时就用你的方法先解决问题。问题解决了才能进行下一步。谢谢。

   //显示数据

            $("#opener").bind("click", { type: "add" }, showData);

           $("#aspxGdv_DXMainTable a").bind("click", { type: "edit" }, showData);

          function showData(event) {
             
              if (event.data.type == "add") {  //添加数据
                  //加载数据
                  //getCustmer();
                  alert("dd5");
                  return false;
              }
              else if(event.data.type=="edit"){
                  alert("dd6");
                  return false;
              }
             
          }

lele4002 2013-07-25
  • 打赏
  • 举报
回复
$("#aspxGdv_DXMainTable a").bind("click", { type: "edit" }, showData);
nsky 2013-07-25
  • 打赏
  • 举报
回复
引用 8 楼 laiyongxin 的回复:
$(this).attr("name")来判断现在是哪个按钮出发的 然后进行相应的逻辑处理...然后不行???
但我这里事件源一直都是这个,#opener 我在showData里面测试了。 我现在主要是重构一下js代码。
lyx266 2013-07-25
  • 打赏
  • 举报
回复
$(this).attr("name")来判断现在是哪个按钮出发的 然后进行相应的逻辑处理...然后不行???
nsky 2013-07-25
  • 打赏
  • 举报
回复
引用 6 楼 lele4002 的回复:
[quote=引用 3 楼 skynq 的回复:] [quote=引用 2 楼 lele4002 的回复:] 你这样写,不也是要给edit按钮绑定一个事件去执行$(“#opener”).click()方法,直接绑定showData不就好了
你是说没有我的那种方式是吗?[/quote] 我只是觉得不太合理[/quote] 但我这是在edit事件里面写$(this).bind("click", { type: "edit" }, showData); 这个要点两次才执行 showData函数。

   $("#aspxGdv_DXMainTable a").click(function () {
                  var href = $(this).attr("href"); //获取href  形式 xxx.aspx?id=90;

                   cusId = href.substring(href.lastIndexOf("=") + 1, href.length);  //最终获取修改的ID

                  //type = "edit"; //标记是修改

                   $(this).bind("click", { type: "edit" }, showData); 

                   //$("#opener").trigger("click", ["type", "bar"]);

                  //$("#opener").click();

                  return false;  //取消href的跳转
              });
lele4002 2013-07-25
  • 打赏
  • 举报
回复
引用 3 楼 skynq 的回复:
[quote=引用 2 楼 lele4002 的回复:] 你这样写,不也是要给edit按钮绑定一个事件去执行$(“#opener”).click()方法,直接绑定showData不就好了
你是说没有我的那种方式是吗?[/quote] 我只是觉得不太合理
nsky 2013-07-25
  • 打赏
  • 举报
回复
引用 4 楼 blue_apple2006 的回复:
$("#id").trigger("click", ["foo", "bar"]);
刚试了。依然不执行。
blue_apple2006 2013-07-25
  • 打赏
  • 举报
回复
$("#id").trigger("click", ["foo", "bar"]);
nsky 2013-07-25
  • 打赏
  • 举报
回复
引用 2 楼 lele4002 的回复:
你这样写,不也是要给edit按钮绑定一个事件去执行$(“#opener”).click()方法,直接绑定showData不就好了
你是说没有我的那种方式是吗?
lele4002 2013-07-25
  • 打赏
  • 举报
回复
你这样写,不也是要给edit按钮绑定一个事件去执行$(“#opener”).click()方法,直接绑定showData不就好了
lele4002 2013-07-25
  • 打赏
  • 举报
回复
那你在$("#opener").bind("click", { type: "add" }, showData);下面直接在写一个绑定不就可以了, $("#edit").bind("click", { type: "edit" }, showData);

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧