我正在尝试使用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(){
})
但两者都不起作用。
任何人都可以帮助我吗?
由于
答案 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
});