将(AJAX)数据发布到另一个页面

时间:2012-10-16 20:52:38

标签: javascript ajax snackjs

我正在尝试一个小型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>

我的问题是,在input元素的change事件中,如何将元素的id以及该元素的值(qty)发布到另一个页面?

我查看了文档,但我无法弄明白。

1 个答案:

答案 0 :(得分: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缺点。

考虑“更大”的图书馆:

  • 有更多功能:那么您决定更多地扩展应用程序功能的那天呢?
  • 拥有更大的社区/商业支持:书籍,参考,指南......
  • 更有可能已经解决了微库中仍存在的问题/问题。想想数以百计的跨浏览器兼容性黑客......

然而,这只是我的意见,只是把它作为我个人的建议。