我想從一個事件處理函數提前返回如果滿足特定條件(如果選擇了id
已經在我的問題列表。)如何退出each()循環並儘早從外部函數返回?
但是我沒有看到,我所期望的結果。
當條件滿足時,我得到「我應該回來」的信息,但我也得到了「我還在這裏嗎?」信息。這仍然允許其餘的代碼在這個函數中執行。
my.test.on('click', '.question-tagging .add-question-type', function() {
var questionIds = getSelectedQuestionIds();
console.log("questionIDs = " + questionIds);
var currentQuestions = $.each($('.question-list .question-item'), function() {
console.log("Question ID = " + $(this).find('.remove-tag').data('questionid'));
if (questionIds == $(this).find('.remove-tag').data('questionid'))
{
console.log("I should return");
return;
}
});
console.log("did i still go here?");
// more code...
});
使用'return false;'來突破'each'。 – Tushar
只返回'.each',它不會突破點擊事件處理程序。 – Stryner
在你返回false之前,在你的'each'循環中切換一個標誌值,然後檢查該標誌的值,以決定是繼續執行其餘的函數還是在該點返回'return'。 – CBroe