-1

我正在尝试使用 jQuery 为图像创建单击事件,但每次尝试都会失败。

首先我有一个div:

<div id="price-holder"></div>

然后我使用 jQuery 通过以下方式插入此 HTML:

$("#price-menu li:nth-child(2)").click(function() { 
    var pregHTML = $("#cakesmash-price").html();
    $("#price-holder").html(pregHTML);
});

但是,使用此 HTML 不起作用

<div id="cakesmash-price" style="display:none">
   <img  id="cake" src="images/order.png" height="32px" onclick="pregbasic(this);">
</div>

我尝试使用onclick图像的属性,还尝试使用带有 ID 的 jQuery 选择器,如下所示

$("#cake").click(function(){

})

但两者都没有工作。

谁能帮我?

谢谢

4

3 回答 3

1

这假定元素实际上正在添加到页面中。

我打赌您在将元素添加到页面之前添加了单击事件,这意味着选择器没有找到任何内容,因此它没有添加事件。

在添加元素后添加事件或使用事件委托。

$("#price-holder").html(pregHTML);
$("#cake").click(function(){

});

或者

$("#price-holder").on("click", "#cake", function () {

});
于 2013-11-13T20:54:45.280 回答
0

您的错误可能是由于您选择了选择器“#price-menu li:nth-child(2)”。尝试使用 JS .children 和 .eq 选择器。此外,如果您的代码是动态添加的,请考虑使用 .on() 事件处理程序而不是 .click()。

于 2013-11-13T20:54:31.207 回答
-1

只需从您真正想要的 DOM 开始,而不使用 jQuery 来执行此操作:

<div id="price-holder">
    <div id="cakesmash-price" style="display:none">
        <img  id="cake" src="images/order.png" height="32px">
    </div>
</div>

然后你可以在#cake上添加你的点击处理程序:

$('#cake').on('click', function (event) {
    // your logic goes here
});
于 2013-11-13T20:53:55.297 回答