首页 > 解决方案 > 如何在 jquery html 字符串中包含内联 onclick

问题描述

我正在尝试使用我正在使用 jQuery html 方法更新的 html 字符串添加内联 onclick 事件侦听器,但它似乎不起作用,

当我检查元素时,它似乎也没有添加任何点击事件侦听器,没有看到 onclick 属性。

我在这里遗漏了什么,有人可以帮忙吗?

var data = [{
  'a': 1,
  'b': 2
}, {
  'a': 10,
  'b': 3
}];
var str = '';

function sendData(e, data) {
  console.log(data);
}
data.forEach(function(item) {
  str += '<div onclick="' + sendData(item) + '">';
});
jQuery('.container').html(str);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container"></div>

标签: javascriptjqueryhtml

解决方案


您连接str不正确:

var data = [{'a':1, 'b':2},{'a':10, 'b':3}];
var e = 1;
var str = '';
function sendData(e, data){
  console.log(data);
}
data.forEach(function(item){
    str+="<div onclick=sendData("+ e + "," + JSON.stringify(item) + ")>click</div>";
});
jQuery('.container').html(str);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container"></div>


推荐阅读