【问题标题】:Why can't I access settings?为什么我无法访问设置?
【发布时间】:2013-01-25 20:53:17
【问题描述】:

我需要一些示波器帮助。下面是我的代码(简化)。在 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);
                        }
                    });
                };

【问题讨论】:

    标签: javascript jquery scope


    【解决方案1】:

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

    实际上,在这种情况下,您使用undefined 隐藏它。

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

    【讨论】:

    • 好的,删除了那个参数。现在,在 $.each 之后,在 success() 中正确记录 dropdownOptions。但是,我想将 settings.dropdown.options 设置为 dropdownOptions 并且它仍然无法正常工作。另外,我已经在我的对象中定义了该键,只是在示例中将其删除以保持清洁,抱歉。
    【解决方案2】:

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

    var settings = {dropdown: {}}:
    

    【讨论】:

      猜你喜欢
      • 2019-02-16
      • 2015-01-11
      • 2014-04-06
      • 1970-01-01
      • 1970-01-01
      • 2012-09-01
      • 1970-01-01
      • 2014-10-03
      • 2021-05-26
      相关资源
      最近更新 更多