Javascript 如何在twitter引导对话框中停止不需要的重复变量?

Javascript 如何在twitter引导对话框中停止不需要的重复变量?,javascript,jquery,twitter-bootstrap,Javascript,Jquery,Twitter Bootstrap,我可以通过ajax删除多个链接: <a id="id-1">link1</a> <a id="id-2">link2</a> <a id="id-3">link2</a> <a id="id-4">link2</a> ... 当我刷新第一个页面时,我收到了以下警告: (点击link1) 但是对于第二,第三和。。。我错了 例如,第二个: (单击链接2) 第三: (单击链接3) 我想 1:id-3 2:

我可以通过ajax删除多个链接:

<a id="id-1">link1</a>
<a id="id-2">link2</a>
<a id="id-3">link2</a>
<a id="id-4">link2</a>
...
当我刷新第一个页面时,我收到了以下警告: (点击
link1

但是对于第二,第三和。。。我错了

例如,第二个: (单击链接2)

第三: (单击链接3)

我想

1:id-3
2:id-3

您能帮我解决这个问题吗?

当您在另一个事件处理程序中绑定事件处理程序时,每次单击元素都会附加一个新的事件处理程序,因此您就遇到了问题。您可以使用来持久化任意数据

$(document).on("click", "[id^=id-]",function(event) { 
    event.preventDefault();
    var btnid = this.id;
    alert('1:'+btnid );

    $("#confirmbtn").data('id', this.id)
})

// a dialog confirm to aks delete  in bootstrap
$(document).on( "click", "#confirmbtn", function(event) {
    alert('2:'+$(this).data('id'));
});

当您在另一个事件处理程序中绑定事件处理程序时,每次单击元素时都会附加一个新的事件处理程序,因此您就遇到了问题。您可以使用来持久化任意数据

$(document).on("click", "[id^=id-]",function(event) { 
    event.preventDefault();
    var btnid = this.id;
    alert('1:'+btnid );

    $("#confirmbtn").data('id', this.id)
})

// a dialog confirm to aks delete  in bootstrap
$(document).on( "click", "#confirmbtn", function(event) {
    alert('2:'+$(this).data('id'));
});

您正在将多个EventHandler绑定到按钮。单击每个链接(link-1、link-2等)后,您将向按钮添加一个新的链接,但现有的链接将保留。为了解决这个问题,您可以在初始化时向确认按钮添加一个事件处理程序,并使用一个变量,它随时告诉您上次单击了哪个链接。你可以这样做:

$(document).ready(function() {

   var lastLinkId;

   $("#confirmbtn").click(function() {
      alert("2: "+lastLinkId);
   });

   $(document).on("click", "[id^=id-]",function(event) { 
      event.preventDefault();
      lastLinkId = this.id;
      alert('1: '+lastLinkId);
   });
});

您正在将多个EventHandler绑定到按钮。单击每个链接(link-1、link-2等)后,您将向按钮添加一个新的链接,但现有的链接将保留。为了解决这个问题,您可以在初始化时向确认按钮添加一个事件处理程序,并使用一个变量,它随时告诉您上次单击了哪个链接。你可以这样做:

$(document).ready(function() {

   var lastLinkId;

   $("#confirmbtn").click(function() {
      alert("2: "+lastLinkId);
   });

   $(document).on("click", "[id^=id-]",function(event) { 
      event.preventDefault();
      lastLinkId = this.id;
      alert('1: '+lastLinkId);
   });
});

抱歉@Satpal,在我写我的答案时没有看到你的答案。很好,亲爱的。正如你所建议的不同方法。不需要道歉抱歉@Satpal,在我写我的答案时没有看到你的答案。很好,亲爱的。正如你所建议的不同方法。没有必要道歉,汉克斯。你的回答很好。我不知道。但我的答案是:只添加“$(this).off('click');”在
$(文档)的末尾。on(“单击”)、“#confirmtn”、function(event){…
@和a我不喜欢这种方法,因此不建议这样做。你也可以使用
.off().on(
谢谢。你的答案很好。我不知道。但对我来说,答案是:只在
$(文档)的末尾添加“$(这个)。off(“单击”);”。on(“单击”,“confirmtn”,函数(事件){…
@我不喜欢这种方法,因此不建议这样做。您也可以使用
.off().on(
$(document).on("click", "[id^=id-]",function(event) { 
    event.preventDefault();
    var btnid = this.id;
    alert('1:'+btnid );

    $("#confirmbtn").data('id', this.id)
})

// a dialog confirm to aks delete  in bootstrap
$(document).on( "click", "#confirmbtn", function(event) {
    alert('2:'+$(this).data('id'));
});
$(document).ready(function() {

   var lastLinkId;

   $("#confirmbtn").click(function() {
      alert("2: "+lastLinkId);
   });

   $(document).on("click", "[id^=id-]",function(event) { 
      event.preventDefault();
      lastLinkId = this.id;
      alert('1: '+lastLinkId);
   });
});