0

addItem()というカスタム関数があり、その中にeach()関数があります。特定の条件が満たされた場合、addItem()関数を終了する必要があります。returneach()関数を終了するだけで、残りのコードはmain関数内で実行されるため、使用できません。試しexitてみましたが、問題なく動作しているようです。exit私はあまり使用されていないので、使用することがこれを行う正しい方法であるかどうかはわかりませんexit

これが私のコードです:

var addItem = function (position) {
    $(position + ' .item_div').each(function() {
        if($(this).find('.item').val() == '') {
            alert('Cannot be empty');
            exit;  // exit from addItem() function
                   // return does not work
        }
    });
    ...........
    ...........
    rest of the code here... this gets executed ONLY if each() fails...
    ...........
    ...........
}
4

3 に答える 3

3

return falseを使用して、.eachループを中断できます。

falseを返すことにより、コールバック関数内からループを停止できます。

var addItem = function (position) {
    var valid = true;
    $(position + ' .item_div').each(function() {
        if($(this).find('.item').val() == '') {
            alert('Cannot be empty');
            valid = false;
            return false;
        }
    });

    if(!valid) {
        return;
    }
    ...........
    ...........
    rest of the code here... this gets executed ONLY if each() fails...
    ...........
    ...........
}
于 2013-03-15T05:11:46.640 に答える
0

ブレークを使ってみましたか。breakステートメントはループから「ジャンプアウト」します。

または、ラベルを作成し、gotoを使用してそのラベルにジャンプすることもできます。

于 2013-03-15T05:15:40.100 に答える
0

ドキュメントによると。はい。あなたreturn false;はループに入る 必要がありますブレークループ

$('.someclass').each(function() {

    if (someConditionMet)
        return false;
});
于 2013-03-15T05:12:17.263 に答える