0

我需要一些范围帮助。下面是我的代码(简化)。在 buildDropdownOptions 内的 ajax 调用成功事件内的函数内...(满嘴)。

我正在尝试在与 buildDropdownOptions 处于同一级别的设置对象中设置某些内容,但我无法访问它(可能是因为 AJAX 调用?)。

有谁知道如何让这个东西工作?

var settings = {},
buildDropdownOptions = function () {

                    var success = function (clinics, settings) {
                        var dropdownOptions = [];

                        $.each(clinics, function (i, clinic) {
                            dropdownOptions.push('<option value="' + clinic.ClinicId + '">' + clinic.Name + '</option>');
                        });

                        settings.dropdown.options = dropdownOptions;
                    };

                    $.ajax({
                        'url': settings.dropdown.source,
                        'success': function (clinics, settings) {
                            success(clinics);
                        }
                    });
                };
4

2 回答 2

5

通过包含settings作为函数参数,您隐藏了更高级别的settings变量。

实际上,在这种情况下,您将其隐藏在undefined.

删除settings参数列表中提到的,它应该可以正常工作。

于 2013-01-25T20:56:14.437 回答
2

您似乎无法访问 settings.dropdown 属性。尝试将代码的第一行更改为:

var settings = {dropdown: {}}:
于 2013-01-25T20:55:43.793 回答