0

我正在尝试使用我遇到的 jQuery 扩展(handsontable)。我在创建表格时没有问题

var spreadsheet = $("#dataTable").handsontable({
            rows: 3,
            cols: 15,
            minSpareRows: 2
});

但是,在创建表之后,我想调用我在 javascript 中为Handsontable对象声明的各种帮助函数。问题是扩展似乎返回了this.each(function() { ... });,我不明白如何从中访问底层Handsontable对象。扩展的 js 可以在这里找到,我在下面的链接上放了一个小演示

http://jsfiddle.net/7JTG2/7/

如您所见,我想在单击按钮时获取其中一个单元格的数据。

4

2 回答 2

2

相关代码在最后:

$.fn.handsontable = function (action, options) {
    if (typeof action !== 'string') { //init
        options = action;
        return this.each(function () {
            if($(this).data("handsontable")) {
                instance = $(this).data("handsontable");
                ...
            } else {
                   ...
                instance = new Handsontable($(this), currentSettings);
                $(this).data("handsontable", instance);
            }
        });
    }
}

这意味着,代码将Handsontable实例设置为元素的数据属性(并将选定的集合返回为可链接的)。拥有一个元素,您可以使用instance = $el.data("handsontable"). 如果您有一组元素,则需要对其进行循环 - 例如使用each().

于 2012-04-19T18:22:47.097 回答
2

看起来您可以使用插件的 onChange 方法在每次自动输入数据时捕获数据。不需要按钮。添加到上面代码中的一个简单示例。

onChange: function(data) {
            $("#data").append(JSON.stringify(data));
          }
于 2012-04-19T18:26:54.380 回答