クリックイベントがあります
$('#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/>");
});
}
デバッグは正しい結果をもたらしていますが、1 つの問題があります。最初に #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 関数は終了しません。
私は自分自身を十分に明確にしたことを願っています...ありがとう!