我习惯使用jQuery.在我目前的项目中,我使用zepto.js.Zepto没有position()
像jQuery那样提供方法.Zepto只附带offset()
.
知道如何使用纯js或Zepto检索容器相对于父级的偏移量吗?
有两个类似的项目:
Zepto是一个用于现代浏览器的极简主义JavaScript库,具有与jQuery兼容的API.
jQuery 2.0 beta:这是你对未来的品味,jQuery可以更快更小,而不需要支持IE 6,7或8.它是特定于平台的HTML应用程序的绝佳选择.
这仅仅是关于性能还是他们遵循不同的方法?
我想在Zepto或Jquery中用$ .ajax POST一个对象数组.两者都表现出相同的奇怪错误,但我找不到我做错了什么.
当使用像'RestEasy'这样的测试客户端发送数据时,数据会保存到服务器,我可以在浏览器的网络面板中看到请求被破坏,所以我相信JS是罪魁祸首.
如果我发送一个对象数组作为POST的数据属性,则它们没有正确发送.
数据对象:
var postData = [
{ "id":"1", "name":"bob"}
, { "id":"2", "name":"jonas"}
]
Run Code Online (Sandbox Code Playgroud)
请求:
$.ajax({
url: _saveDeviceUrl
, type: 'POST'
, contentType: 'application/json'
, dataType: 'json'
, data: postData
, success: _madeSave.bind(this)
//, processData: false //Doesn't help
});
Run Code Online (Sandbox Code Playgroud)
请求正文,如浏览器中所示:
"bob=undefined&jonas=undefined"
Run Code Online (Sandbox Code Playgroud)
通过使用jQuery和Zepto用于准备POST数据的$ .param方法,可以更直接地看到这一点.
$.param(
[
{ "id":"1", "name":"bob"}
, { "id":"2", "name":"jonas"}
]
)
// Output: "bob=undefined&jonas=undefined"
Run Code Online (Sandbox Code Playgroud)
因此,这些库为复杂的后期数据做的准备似乎与我预期的不同.
我看到了这个答案,但我不希望将数据作为查询参数发送,因为我正在发布大量内容. 如何使用jQuery在.ajax帖子中发送数组?
使用jQuery/Zepto通过POST发送多个对象的正确方法是什么?
使用$ .ajax({... data:JSON.stringify(postData)...})发送非破坏内容,但服务器不喜欢该格式.
更新: 似乎JSON.stringify发送格式正确的内容.问题是服务器端非常非常具体地说明了它想要的对象的结构.如果我在对象中添加或删除任何属性,它将使整个过程失败,而不是使用匹配的属性.这很不方便,因为将服务器发送的内容用作视图模型很好,但视图模型会发生变化.......仍在努力寻求最佳解决方案.
我正在使用ZeptoJS作为我的网络应用程序,但如果浏览器不支持Zepto,我想回到jQuery.由于IE是目前唯一不支持的主要浏览器,我很想检测IE:
if(navigator.appName == 'Microsoft Internet Explorer'){
// load jquery
} else {
// load zepto
}
Run Code Online (Sandbox Code Playgroud)
但我更愿意在其他情况下具体检测Zepto支持并使用jQuery.是否有一种功能检测方法可以做到这一点?
我有一个使用Backbone和Zepto开发的单页移动应用程序.
它可以与浏览器中的后退/前进按钮一起正常工作.
当用户导航到页面时,新内容从右侧滑入,因为旧内容向左滑动(并且离开视口).如果用户按下"前进"浏览器按钮,我希望发生同样的事情.这一切都有效.
我有一个类,我添加到body元素navigate-back
将翻转此行为,所以当用户使用浏览器的后退按钮导航回来时,他们会看到内容从左侧向后滑动而其他内容向右滑动.基本上恰好与前进相反.
我需要检测用户是否向后导航,以便我可以调用备用行为.我试图实现我自己的历史堆栈,但我已经遇到了很多的地方,有时它标志着前进的问题回到它破坏了视觉提示导航功能.它现在变成了一堆黑客,如果我发布它可能只会让我感到尴尬.
实现我自己的历史堆栈的最佳方法是什么,以便我可以检测用户是否在单页Backbone移动应用程序的上下文中向前/向后导航?
我想知道是否有人已经尝试在Zepto.js(http://zeptojs.com/)上移植jQueryMobile 而不是所需的jQuery?
情况:我正在开发一个相当复杂的单页Backbone应用程序,可能会连续运行8-12个小时.因此,需要确保应用程序不会泄漏并在X小时后崩溃或显着减速.
应用程序:该应用程序基于Backbone(mv*),Zepto(类似于jquery),Curl(amd loader)和Mustache(模板)构建.
问题:我刚刚征服了事件监听器.垃圾收集器似乎在清理这些人员方面做得很好,但DOM Node Count不会停止攀爬.
问题:
我真的只是想在我的冒险中找到一个先机,以阻止这些DOM节点上升.任何帮助或指导将不胜感激(并相应地投票).
我假设一旦事件监听器被妥善处理,DOM节点计数就会自行管理,但事实并非如此.
编辑:没有时间轴录制,我重新使用相同的脚本随机混搭链接并在7分钟左右拍摄截图.GC发布后我得到了这些结果.
编辑:修复后:
升级Backbone并使用listenTo和stopListening到处都是
javascript mustache google-chrome-devtools backbone.js zepto
该Zepto.js网站说:
Zepto.js是一个用于移动 WebKit浏览器的极简主义JavaScript框架,具有与jQuery兼容的语法.
它是否仅建议用于将在移动设备上使用的应用程序,还是也可用于传统的计算机浏览器Web应用程序中?这样做有什么缺点?
我在我的常规网络应用程序(用于计算机浏览器)中经常使用jQuery,并且我已经意识到(在找到Zepto.js之后)我并不总是使用jQuery的所有功能,所以Zepto.js非常适合我的工作.
另外,为什么会关注'WebKit'引擎呢?它不适用于Windows Phone 7上的移动Internet Explorer,Android或Opera Mobile上的Firefox Mobile吗?
编辑:除了$ .os.ios之外,$ .os.android的存在表明支持非iOS平台,所以最后一个问题得到解答!
编辑(最后):我想真正的问题是"Zepto.js库,打算用于基于移动WebKit的浏览器,是否也可以用作桌面jQuery的轻量级替代品?" 答案是不.
我想知道是否有可能查看
1.有多少事件监听器
2.什么类型的事件监听器
在一个网页上.
原因是因为使用off();
方法.
我正在使用这个框架,它基本上是jQuery但不是.
是的,我正在使用,但是偶然没有移除,而且我感觉eventListener
元素上不止一个.
如果使用javascript无法实现,可以在浏览器中使用吗?
我在我的移动网站上使用zepto库.我最近了解到zepto没有slideDown()
像jquery 这样的插件.我想为zepto实现相同的功能.
我在jsfiddle上尝试了一个(http://jsfiddle.net/goje87/keHMp/1/).这里显示元素时没有动画.它只是闪烁下来.我如何引入动画?
PS:我无法提供固定高度,因为我将此插件应用于其高度属性不可知的元素.
谢谢!