js 动态添加 html 无法调用 js方法问题 解决方案

1 篇文章 0 订阅
1 篇文章 0 订阅

js 动态添加 html 无法调用 js方法问题 解决方案

动态添加的 html 代码无法通过 onclick 方式调用 js 方法。
如:

<script>
$('#sync_error').append('<button onclick="get_position('+data['ret']['account_name']+')"> 失败重试:'+data['ret']['account_name']+'</button>');
</script>

上面的方式无法通过 onclick 方式调用 get_position() 方法,点击按钮会报 not define get_position 的错误。

解决方案,此方案也适用于多按钮情况:

<script>
// 容器标签,也就是要动态向其内部添加 html
var sync_error = $('#sync_error');

// 添加失败重试按钮, 并添加 account_id 属性
sync_error.append('<button account_id="'+data['ret']['account_name']+'"> 失败重试:'+data['ret']['account_name']+'</button>');

// 容器标签获取其内部的元素,如果点击空白则获取的是 null,所以要对获取的结果进行判断
sync_error.click(function(e) {
    // 获取内部的指定属性,不存在则是 null
    var account_id = e.target.getAttribute('account_id');
    if (account_id) { // 存在则直接调用 js
        get_position(account_id);
        // 点击后删除按钮
        e.target.parentNode.removeChild(e.target);
    }
});

function get_position(account_id) {
    // ...
}
</script>
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hiwb

您的鼓励是我创作最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值