在jQuery循环json循环后的命令
问题描述:
我有一个jQuery的问题, 当页面加载时,我调用一个json文件并循环其项目。但是我不能附加任何事件监听器来添加输入按钮。在jQuery循环json循环后的命令
我想例如警报消息做..
我想我粗野,select
输入按钮的jQuery
$.getJSON("data.json", function(json) {
var html = "";
json['products'].forEach(function(val){
var location = '"?id='+val.id+'"';
html += "<div class='item'>"
html += "<div class='item-header'>";
html += "<h3>" + val.item_name + "</h3></div>";
html += "<div class='item-img'>";
html += "<img src='http://www.safensound.com.my/public/images/no_product_img.jpg' title=" + val.item_name + "></img></div>"
html += "<div class='item-footer'>";
html += "<p>Country: " + val.country_of_origin + "</p>";
html += "<p>Price: " + val.price + " $</p>";
html += "<input type='button' data-id='"+val.id+"' class='btn btn-success' value='Add to cart'></input>";
html += "</div></div>";
});
$(".items").html(html);
});
,这是的onclick命令:
$("item-footer>input[type='button']").on("click", function(){
alert("Hi");
});
答
对于动态创建的元素,您至少需要一个静态元素,它是其他元素的父级元素:
$("#SOME_STATIC_PARENT").on("click",".item-footer>input[type='button']", function(){
alert("Hi");
});
在你的榜样,.items
可能是很好的,所以:
$(".items").on("click",".item-footer>input[type='button']", function(){
alert("Hi");
});
什么是'#SOME_STATIC_PARENT'? –
在html页面中创建的元素,不包含JavaScript(静态),例如body或可能是页面的容器div。 –