我正在尝试将JSON对象传递给onclick函数,但它不起作用。
$.each(matches, function() {
var item_data = {
"category" : this['category_name'],
"stock" : this['stock_name'],
"supplier_stock" : this['supplier_stock_name']
};
available_stock_items = available_stock_items + '<tr> \
<td>' + this['category_name'] + '</td> \
<td>' + this['stock_name'] + '</td> \
<td>' + this['supplier_stock_name'] + '</td> \
<td align="center"><img src="' + $j('#edit-vardru-base-path').val() + 'sites/all/modules/core/images/add.png" onClick="select_item('+ item_data +');" /></td> \
</tr>';
});
function select_item(data)
{
console.log("***********PRINT***************");
console.log(data);
}
我在控制台窗口中收到此错误“Uncaught SyntaxError:Unexpected identifier”。
编辑:
现在我尝试使用事件委派传递数据(item_data
)。我在$ .each()中添加了以下代码。在单击事件时调用回调函数,但我无法访问item_data。
$j(document).delegate("#row-"+count, "click", function(item_data){
alert("TEST");
console.log("TEST");
console.log(item_data);
});
答案 0 :(得分:1)
您可以使用html5数据属性
<div id="dataDiv" data-num="">click div</div>
<script>
var jsonData = { "name": "name1" };
$(document).ready(function () {
$("#dataDiv").data("num",jsonData);
$("#dataDiv").on("click", function () {
console.log($(this).data("num"));
});
});
</script>
答案 1 :(得分:0)
您无法在DOM中粘贴json 试试我的演示 HTML
<div id='show_test'>
</div>
jquery的
$(document).ready(function(){
var matches = [
{"category_name":"category_1","stock_name":"stock_1","supplier_stock":"supplier_stock_1"},{"category_name":"category_2","stock_name":"stock_2","supplier_stock":"supplier_stock_2"},
{"category_name":"category_3","stock_name":"stock_3","supplier_stock":"supplier_stock_3"}, {"category_name":"category_4","stock_name":"stock_4","supplier_stock":"supplier_stock_4"}
];
$.each(matches, function(i) {
var arrayDt = [];
arrayDt[i] = {
"category" : this.category_name,
"stock" : this.stock_name,
"supplier_stock" : this.supplier_stock
};
$("#show_test").append("<div><a id='bt_"+i+"'>click</a></div>");
$("#bt_"+i).click(function(){
show_data(arrayDt[i]);
});
});
});
function show_data(data){
alert(JSON.stringify(data));
}
或参见