0

私は小さなJavaScriptライブラリSnackJSを試していますが、かなりうまくいっています。しかし、私は壁にぶつかりました、そしてこれを理解することができないようです:

スナック:

<script type="text/javascript">
    snack.ready(function () {
        var parameters = {
            node: document.body,
            event: 'change',
            delegate: function (node) {
                return node.getElementsByClassName("qty")
            }
        }

        snack.listener(parameters, postToOtherPage);

        function postToOtherPage() {
            var options = {
                method: 'post',
                url: '/InlineEditing',
                data: {
                    qty: 5,
                    id: "hi"
                }
            }
        }
    });
</script>

私の質問は、入力要素の変更イベントで、要素のIDとその要素の値(数量)を別のページに投稿するにはどうすればよいですか?

私はドキュメントを調べましたが、それを完全に理解することはできません。

4

1 に答える 1

2

あなたは行方不明です

snack.request(options, callback);

電話。その一部として、コードは正常に見えます。何が問題になっていますか?

アップデート

ああ、要素からIDを取得していないようです。ドキュメントから:イベントコールバックの最初の引数は、イベントを発生させたノードなので、次のようになります。

snack.ready(function () {
    var parameters = {
        node: document.body,
        event: 'change',
        delegate: function (node) {
            return node.getElementsByClassName("qty")
        }
    }

    snack.listener(parameters, postToOtherPage);

    function postToOtherPage(event) {
        var options = {
            method: 'post',
            url: '/InlineEditing',
            data: {
                qty: 5,
                id: this.id
            }
        }
        snack.request(options, function(){
          // do something with response..
        });
    }
});

正常に動作するはずです。

アップデート

いいえ、申し訳ありませんが、いつものように、彼らが使用していることがわかったドキュメントをさらに読んでくださいcallback.apply(this, [event])。上記の更新されたコード。

ちなみに、jQuery /Zeptoなどの定評のあるライブラリの代わりにこの種のマイクロライブラリを使用する意味はわかりません。サイズの点でマイクロライブラリの長所はIMOの短所に値しないからです。

「より大きな」ライブラリについて考えてみましょう。

  • より多くの機能があります:アプリケーションの機能をさらに拡張することを決定する日はどうですか?
  • より大きなコミュニティ/商業ベースのサポートがあります:本、リファレンス、ガイド、...
  • マイクロライブラリにまだ存在する問題/問題をすでに解決している可能性が高くなります。何百ものクロスブラウザ互換性ハックについて考えてみてください...

ただし、これは私の意見であり、個人的なアドバイスとしてとらえてください。

于 2012-10-16T22:54:21.437 に答える