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/

ご覧のとおり、ボタンをクリックするとセルの 1 つのデータを取得したいと考えています。

4

2 に答える 2

2

プラグインの onChange メソッドを使用して、自動的に入力されるたびにデータをキャプチャできるようです。ボタンは必要ありません。上記のコードに追加する簡単な例。

onChange: function(data) {
            $("#data").append(JSON.stringify(data));
          }
于 2012-04-19T18:26:54.380 に答える
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インスタンスをデータ属性として要素に設定します (そして、選択されたセットを連鎖可能に戻します)。要素が 1 つあれば、 で簡単に抽出できますinstance = $el.data("handsontable")。要素のセットがある場合は、それをループする必要があります-たとえば、each().

于 2012-04-19T18:22:47.097 に答える