使用jQuery插件公共方法返回对象数组

时间:2016-06-16 17:18:37

标签: javascript jquery jquery-plugins

我正在构建一个插件,“selectList”是从具有这种结构的给定对象数组构建的:

var data = [
    {"value": 1, "name": "Item 1", "isSelected": true},
    {"value": 2, "name": "Item 2", "isSelected": false}
];

然后,您可以单击列表的元素以选择或取消选择它们(所选项目添加“活动”类)。我想在单击“保存”按钮时调用公共方法。此方法将更新收到的数组并使用所选项更新它。

为此,我尝试了这种方法:

$.fn.selectList.getData = function (elem, data) {
   var items = elem.children('ul').children('li').not('.sl-title');

   items.each(function (index) {
      if (this.hasClass('active')) {
        data[index].isSelected = true;
      } else {
        data[index].isSelected = false;
      }
    });

    return data;
}

这就是我在插件中声明变量的方式:

;(function ($) {
    "use strict";
    $.fn.selectList = function (settings) {

        var opts = $.extend({}, $.fn.selectList.defaults, settings);

        return this.each(function () {
            var _self = $(this),
                _data = opts.data;

            initList(_self);

            if (_data) {
                buildList(_self, _data);
            } else {
                noData(_self, opts.noDataMessage);
            }
        });
    };
...

我不确定将_self_data参数传递给公共方法的位置,因为“保存”按钮不在插件内。有帮助吗?

0 个答案:

没有答案