【问题标题】:innerhtml+= How to Get load data from ajax then make an action?innerhtml+= 如何从 ajax 获取加载数据然后执行操作?
【发布时间】:2020-10-28 10:13:02
【问题描述】:

我是新手,新手在这里学习...

我想从加载的部分动态添加一些事件,但它返回到 1 id

所以我对 innerHTML+= 有问题,并像这样使用 ajax 调用..

 $.ajax({
                    url: 'getuser.php',
                    type: 'POST',
                    data: {
                        id_user: id_user
                    },
                    success: function(data) {
                       listuser.innerHTML+=data;
                      
                    }
                  
                });

然后使用 getuser.php 我得到这样的结果

<div id="listuser">
<button id="1" class="pickmember">Member1</button >
<button id="2" class="pickmember">Member2</button>
</div>

所以当我调用一个函数时

$(".pickmember").click(function(){
var id_user=$(this).attr('id');
alert('u pick member'+id_user);
});

当我调用它时,它总是返回最后添加到innerhtml,并且点击时无法检测到member2,有解决办法吗?

【问题讨论】:

  • 你试过listuser.innerHTML = listuser.innerHTML + data吗?
  • 一路走jquery$('#listuser).append(data);
  • 是的,它的返回与上面的代码相同......
  • @FelippeDuarte 我也试过了,结果和上面一样……
  • 当你添加一个新的 DOM 元素时,你需要重新绑定 click 函数。附加 data 后运行相同的 .click()

标签: php html ajax


【解决方案1】:

使用 .on() 代替 .click()

$(".pickmember").on('click', function () {
    var id_user = $(this).attr('id');
    alert('u pick member' + id_user);
  });

更多信息 --> jQuery $(".class").click(); - multiple elements, click event once

【讨论】:

  • 尝试添加 event.stopPropagation();和 event.stopImmediatePropagation();
  • 它仍然返回到 id member1 ......真令人沮丧
猜你喜欢
  • 1970-01-01
  • 2017-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-04
相关资源
最近更新 更多