Почему я всегда должен что-то вернуть в анонимную функцию?


Я унаследовал этот фрагмент на jQuery JavaScript и я в настоящее время совершенствую помощью jQuery. Среда NetBeans жалуется, что анонимная функция не всегда возвращает значение. Так что это не всегда явной точки выхода.

Я знаю, что $() ярлык не используется. Это потому, что он работает в среде WordPress и должен быть в бесконфликтное режиме.

function init() {

    jQuery("#post").submit(function(_e) {
        // Make sure question is supplied
        var contents;
        if(window.tinyMCE && document.getElementById("content").style.display=="none") { // If visual mode is activated.
            contents = tinyMCE.get("content").getContent();
        } else {
            contents = document.getElementById("content").value;
        }

        if(!contents) {
            alert(msg_enter_question);
            _e.preventDefault();
            _e.stopPropagation();
            return true;
        }


        // We must have atleast 2 answers.
        var answer_count = 0
        jQuery(".answer").each(function() {
            if(this.value) answer_count++;
        });
        //if(answer_count < 2) {
        //  alert("<?php //_e("Please enter atleast two answers"); ?>");
        //  _e.preventDefault();
        //  _e.stopPropagation();
        //  return true;
        //}

        //A correct answer must be selected.
        var correct_answer_selected = false;
        jQuery(".correct_answer").each( function(_e) {
            if(this.checked) {
                correct_answer_selected = true;
                return true;
            } 
        });
        if(!correct_answer_selected) {
            alert(msg_correct_answer);
            _e.preventDefault();
            _e.stopPropagation();

        } 
    });
}
jQuery(document).ready(init);

Мой вопрос - почему я всегда должен что-то вернуть в анонимную функцию? Т. е. правильно в NetBeans жаловаться?



2935
5
задан 6 февраля 2011 в 12:02 Источник Поделиться
Комментарии
1 ответ

NetBeans является право жаловаться на это (есть некоторые детали на сайте об этом, но они немного жиденькие). Также это не в NetBeans, например Firefox с строгий режим включен предупредит об этом также.

Так:

jQuery(".correct_answer").each( function(_e) {
if(this.checked) {
correct_answer_selected = true;
return true;
}
});

В случае, что это.проверил имеет значение false, функция возвращает значение undefined, так это гораздо лучше, чтобы явно обрабатывать это событие.

2
ответ дан 6 февраля 2011 в 06:02 Источник Поделиться