后台有这样一个文章列表。<div id="list">
<p id="1">
<a href="/uc/book_mybookshelf.aspx?id=1">文章一</a>
<a class="edit" href="javascript:void()">编辑</a>
</p>
<p id="2">
<a href="/uc/book_mybookshelf.aspx?id=2">文章二</a>
<a class="edit" href="javascript:void()">编辑</a>
</p>
<p id="3">
<a href="/uc/book_mybookshelf.aspx?id=3">文章三</a>
<a class="edit" href="javascript:void()">编辑</a>
</p>
<p id="4">
<a href="/uc/book_mybookshelf.aspx?id=4">文章四</a>
<a class="edit" href="javascript:void()">编辑</a>
</p>
<p id="5">
<a href="/uc/book_mybookshelf.aspx?id=5">文章五</a>
<a class="edit" href="javascript:void()">编辑</a>
</p>
</div>JQUERY 代码:$(function () {
$(".edit").click(function () {
//文章的id,要传到后台ashx中使用
var tid = $(this).parent("p").attr("id");
//显示隐藏层
$("#editform").show();
$("#editform").css("background", "green");
//取当前行的文章名
var oldname = $(this).parent("p").children("a").html();
//赋值给隐藏层的oldname
$("#oldname").html(oldname);
//隐藏层的点击事件
$("#btnEdit").click(function () {
var newname = $("#txtNewname").val();
if (newname.length <= 0) {
alert("新名称不能为空");
return false;
}
//传给后台
$.post("/uc/manage/edit_bookshelf.ashx", { id: tid, name: newname },
function (data, status) {
if (status != "success") {
alert("通信失败!");
return false;
}
if (data == "1") {
alert("修改成功");
}
else if (data == "2") {
alert("你无权修改");
return false;
}
});
}); });
});
问题现象:
先点击第一个编辑,然后在弹出框中点修改,弹出一个alert。
再点击第二个编辑,点修改,弹出二个alert.
点第三个编辑,点修改,弹出三个alert.
....
这里,后面为什么会弹出多个alert.新手,求解。
<p id="1">
<a href="/uc/book_mybookshelf.aspx?id=1">文章一</a>
<a class="edit" href="javascript:void()">编辑</a>
</p>
<p id="2">
<a href="/uc/book_mybookshelf.aspx?id=2">文章二</a>
<a class="edit" href="javascript:void()">编辑</a>
</p>
<p id="3">
<a href="/uc/book_mybookshelf.aspx?id=3">文章三</a>
<a class="edit" href="javascript:void()">编辑</a>
</p>
<p id="4">
<a href="/uc/book_mybookshelf.aspx?id=4">文章四</a>
<a class="edit" href="javascript:void()">编辑</a>
</p>
<p id="5">
<a href="/uc/book_mybookshelf.aspx?id=5">文章五</a>
<a class="edit" href="javascript:void()">编辑</a>
</p>
</div>JQUERY 代码:$(function () {
$(".edit").click(function () {
//文章的id,要传到后台ashx中使用
var tid = $(this).parent("p").attr("id");
//显示隐藏层
$("#editform").show();
$("#editform").css("background", "green");
//取当前行的文章名
var oldname = $(this).parent("p").children("a").html();
//赋值给隐藏层的oldname
$("#oldname").html(oldname);
//隐藏层的点击事件
$("#btnEdit").click(function () {
var newname = $("#txtNewname").val();
if (newname.length <= 0) {
alert("新名称不能为空");
return false;
}
//传给后台
$.post("/uc/manage/edit_bookshelf.ashx", { id: tid, name: newname },
function (data, status) {
if (status != "success") {
alert("通信失败!");
return false;
}
if (data == "1") {
alert("修改成功");
}
else if (data == "2") {
alert("你无权修改");
return false;
}
});
}); });
});
问题现象:
先点击第一个编辑,然后在弹出框中点修改,弹出一个alert。
再点击第二个编辑,点修改,弹出二个alert.
点第三个编辑,点修改,弹出三个alert.
....
这里,后面为什么会弹出多个alert.新手,求解。
解决方案 »
- JS的转意问题tree.replace("""," " ")
- 谁有extjs4的皮肤文件
- 菜鸟提问,请格外大虾帮忙 能否用Validator.js多重判断
- ●●●●●●●●●●●●●●●●●●●●●●●●●●●怎么这里return和不return都一样啊??????????
- 请问怎么在指定的框架内弹出新网页
- 会javascript和C请进
- javascript現實替換問題
- 从window.open改成window.showModalDialog后出现的错误!(十万火急)
- 选中一个复选框时,只有部分复选框被选中该如何实现
- jQuery UI的对话框,有俩按钮,如何知道按下哪个呢?
- href="#”问题
- 怎么实现无限延时循环呢、
$("#btnEdit").click(function () {});
<div id="editform" style="display: none;">
原书架名:<span id="oldname"></span><br />
变更为:<input type="text" id="txtNewname" />
<input type="button" id="btnEdit" value="修改" />
</div>我也觉得是事件重复绑定了,可是应该怎么清除?
var newname;
$("#btnEdit").click(function () {
newname = $("#txtNewname").val();
if (newname.length <= 0) {
alert("新名称不能为空");
return false;
}
你这样写还是不行。我自己解决了。
把 $("#btnEdit").unbind();加在 $(".edit").click(function () {中就可以了。