我有一個click事件打破JavaScript函數
$('#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 ove,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將剛剛結束的單擊事件在那個事件裏面。我的意思是 - 如果你交換上述註釋行//如果新船用下面的代碼:
$('.ship_Move').click(function() {
// return false would break this function
});
此代碼只會結束這個點擊事件,但不是moveShip功能。
我希望自己明白了... 謝謝!
您是否嘗試輸入Konami代碼來查看會發生什麼? – adeneo