Jquery 列表上的嵌套单击事件正在进行多次调用

Jquery 列表上的嵌套单击事件正在进行多次调用,jquery,Jquery,我有一份物品清单 如果我单击列表1、->2、->3,然后单击Btn,它的运行次数与单击Btn 这里是示例演示 $('li.list group item')。在('click',函数(e)上{ $('circle btn')。在('click',函数(p){ 警惕(“检查”); }); }) Btn 1. 2. 3. 此代码存在问题: $('li.list-group-item').on('click', function(e) { $('.circle-btn').on('

我有一份物品清单

如果我单击列表1、->2、->3,然后单击
Btn
,它的运行次数与单击
Btn

这里是示例演示

$('li.list group item')。在('click',函数(e)上{
$('circle btn')。在('click',函数(p){
警惕(“检查”);
});
})

Btn
  • 1.
  • 2.
  • 3.

  • 此代码存在问题:

    $('li.list-group-item').on('click', function(e) {
      $('.circle-btn').on('click', function(p) {
        alert('check');
      });
    })
    
      $('.circle-btn').on('click', function(p) {
        alert('check');
      });
    
    基本上,您所做的是,每当在
    列表组项目上有一个单击事件时,您订阅一个新的单击事件处理程序,这意味着如果您单击
    。列表组项目
    15次,将定义15次相同的事件处理程序

    只需将内部单击侦听器移出外部单击侦听器

    $('li.list-group-item').on('click', function(e) {
      $('.circle-btn').on('click', function(p) {
        alert('check');
      });
    })
    
    此代码为btn上列表事件中的每个元素添加。如果您只需要一个事件,请在按钮上单击“您需要此代码”:

    $('li.list-group-item').on('click', function(e) {
      $('.circle-btn').on('click', function(p) {
        alert('check');
      });
    })
    
      $('.circle-btn').on('click', function(p) {
        alert('check');
      });
    

    您需要在
    $('.circle btn')中添加
    e.stopPropogation()
    p.stopPropogation()
    方法。在('click',function(p)
    上,将其添加到
    警报()
    方法的底部

    $('.list group item')。在('click',函数(e)上{
    $('circle btn')。在('click',函数(p){
    警惕(“检查”);
    e、 停止传播();
    });
    });
    
    按钮
    1.
    2.
    3.
    
    不,我不能,我在这里简单地找到了一个解决方案,但在第一次单击时,它会获取与该列表项相关的所有区块链状态、地址和余额,然后我需要使用该数据执行第二次单击。使用该方法有什么解决方法吗?使用
    e.stopPropogation()
    内部
    $('.circle btn')。on(“单击”,函数(p){
    函数到
    alert()
    方法的底部。