Значение параметра по умолчанию для функции JavaScript - PullRequest
0 голосов
/ 08 апреля 2019

Я пытаюсь установить значение по умолчанию для параметра функции, который будет запрашивать у моего сервера начальное значение.

Конечная цель - я смогу щелкнуть один из элементов списка, который ясоздать, чтобы получить и создать новый список.

<script type="text/javascript">
        $(function getJobs(jobid=0) {
            {#jobid = 0;#}
            console.log("jobid: " + jobid);
            let query = {id: jobid};
            console.log(query);
            $.getJSON("{% url 'website:get-jobs' %}", query, function (data) {
                console.log("getjson");
                $.each(data, function (key, value) {
                    console.log(key + " - " + value);
                    $('#jobs-list').append("<li id='" + key + "'" + "href='#'" + "onclick=getJobs(key)" + ">" + value + "</li>");
                });
            });

        })
</script>

Если я вручную установил для jobid значение 0 (закомментировано в приведенном выше коде), все работает отлично.Если я пытаюсь установить его в списке параметров функции, я получаю это в моем console.log: jobid: function (e, t) {вернуть новый w.fn.init (e, t)}

1 Ответ

1 голос
/ 08 апреля 2019

Когда jQuery вызывает обратный вызов для $(function(x) { ... }), аргументом является сам объект jQuery, поэтому значение по умолчанию никогда не понадобится

, поэтому вы захотите сделать это вместо

$(function() {
    function getJobs(jobid = 0) {
        console.log("jobid: " + jobid);
        let query = {id: jobid};
        console.log(query);
        $.getJSON("{% url 'website:get-jobs' %}", query, function (data) {
            console.log("getjson");
            $.each(data, function (key, value) {
                console.log(key + " - " + value);
                $('#jobs-list').append("<li id='" + key + "'" + "href='#'" + "onclick=getJobs(key)" + ">" + value + "</li>");
            });
        });
    }
    getJobs();
});

в качестве альтернативы, используя свой исходный код, вы, конечно, можете проверить случай, когда typeof jobid является функцией, и установить вместо нее 0 ... т.е.

$(function getJobs(jobid) {
    if (typeof jobid === 'function') {
        jobid = 0;
    }
    console.log("jobid: " + jobid);
    let query = {id: jobid};
    console.log(query);
    $.getJSON("{% url 'website:get-jobs' %}", query, function (data) {
        console.log("getjson");
        $.each(data, function (key, value) {
            console.log(key + " - " + value);
            $('#jobs-list').append("<li id='" + key + "'" + "href='#'" + "onclick=getJobs(key)" + ">" + value + "</li>");
        });
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...