点击图片什么都不做

时间:2013-11-13 20:47:13

标签: javascript jquery html css

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

首先我有一个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(){

})

但两者都不起作用。

任何人都可以帮助我吗?

由于

3 个答案:

答案 0 :(得分:1)

这假设该元素实际上已添加到页面中。

我打赌你在将元素添加到页面之前添加click事件意味着选择器没有找到任何东西,所以它没有添加事件。

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

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

});

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

});

答案 1 :(得分:0)

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

答案 2 :(得分:-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
});