我正在尝试一个小型 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 以及该元素的值(数量)发布到另一个页面?
我确实浏览了文档,但我不太明白。
最佳答案
你缺少一个
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 等成熟的库有什么意义,因为在我看来,微型库在大小方面的优点并不值得。缺点。
考虑“更大的”库:
- 拥有更多功能:有一天您决定进一步扩展应用程序功能怎么办?
- 拥有更大的社区/商业支持:书籍、引用资料、指南……
- 更有可能已经解决了微型图书馆中仍然存在的问题。想想数百个跨浏览器兼容性黑客......
不过,这只是我的意见,仅供我个人建议。
关于javascript - 将 (AJAX) 数据发布到另一个页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12923218/