我的页面有多个.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();
})
})
Run Code Online (Sandbox Code Playgroud)
最初#div_conf_*事件是.click(function(){events,但我读到任何DOM更改都会取消绑定这些处理程序,所以我尝试了.live,但它仍然无效.我需要做什么才能做到这一点.脚本通过DOM更改可以访问所有三个点击事件?
我是jQuery的新手如此宽容,如果这有一个明显的答案.
编辑:第二个或第三个.click()事件都不起作用.我已经实现了响应者建议的语法和缩进更正,但仍然没有变化.上面的代码块是我脚本标记中的所有内容.我需要用其他东西包裹块吗?这是$ document.ready()的问题吗?我是否正确使用.live()?这是错误的方法选择吗?我在Chrome JS控制台中没有错误.
我主要担心的是,根据我的理解,第三个.click()函数应该简单地反转第一个.click()函数的效果,该函数按预期运行.我已粘贴下面的相关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>
Run Code Online (Sandbox Code Playgroud)
Edit2:我更新了第二个.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);}
);
})
Run Code Online (Sandbox Code Playgroud)
$(function () {
$("#delete").click(function () {
$(this).hide();
$("span.hconf").show();
})
$("#div_conf_true").live("click", function () {
$.post("/u:" + $("span.username").text() + "/delete/"), { // <-. remove ) here
url_id: $("#div_conf_true").attr("u"), // |
uname: $("span.username").text(), // |
complete: window.location.reload(true) // |
} // <-' and place here
})
$("#div_conf_false").live("click", function () {
$("span.hconf").hide();
$("#delete").show();
})
})
Run Code Online (Sandbox Code Playgroud)
那条线是你的问题,)在你之后删除/delete/,否则你就是关闭了.post().然后将它放在突出显示的行上的括号之后.
| 归档时间: |
|
| 查看次数: |
425 次 |
| 最近记录: |