我的页面有多个.click()事件,但只有第一个事件按预期执行。
$(function () {
$("#delete").click(function () {
$(this).hide();
$("span.hconf").show();
})
$("#div_conf_true").live("click", function () {
$.post("/u:" + $("span.username").text() + "/delete/"), {
url_id: $("#div_conf_true").attr("u"),
uname: $("span.username").text(),
complete: window.location.reload(true)
}
})
$("#div_conf_false").live("click", function () {
$("span.hconf").hide();
$("#delete").show();
})
})
最初#div_conf_*事件是.click(function(){events,但我读到任何DOM更改都会解除这些处理程序的绑定,所以我尝试了.live,但它仍然不起作用。在这个脚本中,我需要做什么才能通过DOM更改访问所有三个点击事件?
我是jQuery的新手,所以如果这有一个明显的答案,请原谅。
编辑:第二个和第三个.click()事件都不起作用。我已经实现了响应者建议的语法和缩进更正,但仍然没有更改。上面的代码块是我的脚本标记中的所有内容。我需要用别的东西包块吗?这是$document.ready()的问题吗?我是不是用错了.live()?这里的方法选择错了吗?我在Chrome JS控制台中没有错误。
我主要担心的是,据我所知,第三个.click()函数应该简单地颠倒第一个.clic()函数的效果,它按预期运行。我已经在下面粘贴了相关的HTML。
<div id= modify ><a class= modify id="edit" href= {{ edit_url }} >edit</a> | <a class= modify id="delete" u="{{ i.id }}" href= # >delete</a><span class= hconf style="display:none">Are you sure? <a class= confirm id= del_conf_true href= # >yes</a> | <a class= confirm id= del_conf_false href= # >no</a></span></div>
第2版:我已经更新了第二个.click()函数,但功能仍然没有变化。
$("#div_conf_true").live("click", function ( {
$.post("/u:"+$("span.username").text()+"/delete/",
{
url_id:$("#div_conf_true").attr("u"),
uname:$("span.username").text()
},
function() {window.location.reload(true);}
);
})