我有一个点击事件
$('#ship_Move').click(function (event) {
event.stopPropagation();
$('.shipActionsList').remove();
moveShip(shpID);
});
调用函数 moveShip
function moveShip(shp_id) {
$('.fieldDivs').click(function () {
$("#hello").append("Move "+ shp_id + "to " + $(this).attr('id')+"<br/>");
});
}
调试给出了正确的结果——但有一个问题。如果我首先单击#ship_Move 元素 4 次,然后选择一个目的地 (.fieldDivs),我会得到:
将 162 移动到 FD455
将 162 移动到 FD455
将 162 移动到 FD455
将 162 移动到 FD455
因为 moveShip 函数已经被调用了 4 次,每个都在等待一个 .fieldDivs 元素被点击,当它被点击的时候,所有 4 个都追加了他们的结果(162 是我要移动的船 ID,FD455是它的目的地)。
我需要的是以下几行:
function moveShip(shp_id) {
$('.fieldDivs').click(function () {
$("#hello").append("Move "+ shp_id + "to " + $(this).attr('id')+"<br/>");
// IF A NEW #SHIP_MOVE IS CLICKED, END THIS FUNCTION AS IT WILL BE CALLED AGAIN
});
}
我知道我可以返回 false 来中断函数,但是对于单击事件,我需要一个新函数,因此返回 false 只会结束该事件中的单击事件。我的意思是 - 如果你用下面的代码交换上面的注释行 //IF A NEW SHIP:
$('.ship_Move').click(function () {
// return false would break this function
});
这段代码只会结束这个点击事件,而不是 moveShip 函数。
我希望我让自己足够清楚......谢谢!