将click事件添加到附加项目

时间:2015-04-09 16:59:06

标签: javascript jquery html click append

我正在尝试向通过jQuery追加的元素添加click事件。 如果我的HTML代码中包含该项,那么click事件就可以正常运行。我希望代码能更好地解释

HTML

<div id="addNew">Add new Item</div>
<div id="priceWrapper"></div>
<div class="price"></div>

JS

var data;
$('#addNew').click(function () {
    $('#priceWrapper').append('<div class="item" data-js="2.5" id="Item" >(I dont work i was not here on load)I AM AN ITEM WICH COSTS 2.5€</div>');
});
$('#Item').click(function () {
    data = $(this).attr("data-js");
    alert(data);
});

JsFiddle

中的示例

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

使用jQuery .on 。更多信息here

var data;
$('#addNew').click(function (e) {
    e.preventDefault();
    $('#priceWrapper').append('<div class="item" data-js="2.5" id="Item" style="background-color:yellow;border-bottom:solid 5px green">(I dont work i was not here on load)I AM AN ITEM WICH COSTS 2.5€</div>');
});

$('body').on('click', '.item', function () {
    data = $(this).attr("data-js");
    alert(data);
});

Fiddle


这不起作用的原因是因为首先,只有一个 元素一次可以有一个id。我们必须将其设置为使用 .item。另一个问题是,当页面加载时,事件设置为,因此它不会注意到新项目。