如何检索具有纯JS父母的容器的偏移? ? 解决方案 其他解决方案 在纯JS中只使用offsetLeft和offsetTop属性. 示例小提琴: http://jsfiddle.net.net/wkz8p/ 在 var elm = document.querySelector('span'); console.log(elm.offsetLeft, elm.offsetTop); p { position:relative; left:10px; top:85px; border:1px solid blue; } span{ position:relative; left:30px; top:35px; border:1px solid red; }
paragraph
其他解决方案 我在Internet Explorer中做到了. function getWindowRelativeOf
以下是关于 zepto 的编程技术问答
情况:我正在研究一个相当复杂的单页骨干应用程序,该应用可能会连续运行8-12+小时.因此,有必要确保应用程序不会泄漏并在X小时后坠毁或急剧下降. 应用程序:该应用是建立在 backbone (MV*), zepto (类似于jquery), curl (amd loader)& Mustache (stomplating). 问题:我刚刚征服了活动的听众.垃圾收集器似乎在清理这些家伙方面做得很好,,但DOM节点的数量不会停止攀爬. 问题: 是否有适当的方法处理DOM节点,以便将其正确收集到垃圾,还是该DOM节点计数是一个永远不会降低的运行总数? 有人知道这些框架中的任何一个都可以处理DOM节点吗?可能小胡子? DOM节点是否计数甚至可靠的数字? 我真的只是在寻找冒险中的抢手,以阻止这些DOM节点上升.任何帮助或指导都将不胜感激(因此要投票). 我以为事件侦听器一旦正确处理,dom节点计数就会自我管理,但事实并非如此. 测试 首次测试:6
我正在尝试创建类似于iPhone键盘的行为(请参阅随附的图像).与IN一样,当用户启动并移动触摸时,她看到了触摸元素的缩放版本,并且在触摸时会进行选择.我正在使用Zepto. 我可以正确获得触摸坐标,但很难找到手指下的对象.我正在使用以下代码检查返回哪个元素作为事件的目标. $("#myList li").live('touchmove', function(event) { console.log(event.touches[0].target.innerHTML); }); 这始终返回起始touch上的事件. on 我尝试检查每个对象上的第一个元素,但是它们似乎仅包含起始托元素作为目标.我在这里缺少什么吗? 我从 正确地获得触摸的坐标 var positionTop = event.touches[0].pageY; var positionLeft = event.touches[0].pageX; 如果所有其他方法都失败了,我开始认为也许
我希望建立一个新的网站,并希望采用负责任的"移动优先"方法.这种方法的一个宗旨是仅加载您需要的东西,并避免在您真正需要的浪费图书馆和框架之前. . 为此,我打算使用 Modernizr2 测试功能,然后仅加载所需的文件和库./p> 在JavaScript方面,我非常有兴趣使用Zepto.js( http://zeptojs.com/)是一个针对移动WebKit(单独使用移动WebKit)优化的小型JavaScript库(2-5K),同时维护jQuery兼容语法.它也被设计为具有全面jQuery的"可热门".所以我的策略是(在伪代码中): 移动Webkit的测试 if(true)加载zepto.js if(false)加载jQuery 但是现在我的问题是:您会推荐什么(未来的证明)技术来检测移动WebKit,最好是以纯JavaScript方式(不使用jQuery,插件或其他库),并且可以与 Modernizr的测试API ? 解决方案 好吧,所以我想我的问
我有一个带有骨干和Zepto的单页移动应用程序. 它可以与浏览器中的背面/前进按钮正确工作. 当用户导航到页面时, new 内容从右侧滑入,因为 old> old 内容向左滑动(并从视图出发).如果用户按"前向"浏览器按钮,我希望发生同样的事情.这一切都起作用. 我有一个添加到身体元素navigate-back的类,可以翻转此行为,因此,当用户使用浏览器的返回按钮返回时,他们会看到内容滑动 back 从左侧和其他内容滑入右侧.基本上只是前进的相反. 我需要检测用户是否向后导航,以便我调用替代行为.我已经尝试实现自己的历史记录堆栈,但是我遇到了很多问题,有时它标记为a back 导航,这会破坏视觉提示.它现在陷入了黑客攻击,只有在我张贴它的情况下才会让我感到尴尬. 实现我自己的历史堆栈的最佳方法是什么,以便我可以检测用户是否在单页骨干移动应用程序中向前/向后导航? 解决方案 我不知道backbone.js 1 ,但是我帮助开发了必须在HTML5中实现此
我是Zepto的新手,并将其用作网站移动部分的jQuery替代品. 因此,Zepto没有$ .fn.extend.很好,这对我来说很酷,但是我需要插件才能工作,而不论jQuery或Zepto如何. Zepto对fn.extend的更改是什么?您将如何制作跨库扩展名?我还没有找到任何文档. $.fn.extend({ lineRedNAddClass : function(option){ $(this).css('border','red 1px solid').addClass(option); } }); 可以从同一脚本中使用这两者都可以使用吗? 解决方案 Zepto的扩展功能可以通过$.extend()访问,该功能也可以在jQuery API中使用,因此我们可以简单地使用它扩展$.fn. 示例: $.extend($.fn, { myFunc: function() {
node.js无法处理我的客户端代码,该代码执行类似于jQuery/Zepto Xhr模式: $.ajax({ type: 'POST', url: '/someUrl', success: function(response) { $.ajax({ // ... do another XHR 我已经完成了此操作(在其他框架中,在其他XHR请求中启动XHR请求).我已经阅读了有关 node.js错误:can can can can t设置标头在发送后以及Node.js服务器的基于事件的模型的工作方式.换句话说,第一个XHR请求尚未称为res.end(),因此当第二个XHR请求称为Node.js clock(在连续循环中). 我的问题是:是否有人可以推荐替代模式来链接XHR请求客户端?我可以做一些可以做Node.js服务器端以保持现有客户端模式的操作吗? 基于接受答案的更新 错误肯定在我自己的服务器端代码中.一个简单的验证函数引发了错误,但是
我正在使用轻量级Zepto.js框架,现在我需要测试页面上的元素是否可见……这是我的情况: 一个按钮触发功能show_guides(). function show_guides() { $('#guides').toggle(); if ( $('#guides').is(':visible') ) { // does not work //$.cookie('guides_visible', 'true'); console.log("visible"); } else { console.log("invisible"); //$.cookie('guides_visible', null); } } 如果可见$('#guides')我想保存一个cookie,如果不是,我想摆脱它. 但是,zepto.js不支持:visible之类的选择器,因此我必须找到其他方式.
所以这里就是这样,我从自定义广告服务器上收到一个广告,例如So src = 'http://www.adserver.com/www/delivery/ajs.php?zoneid=1&cb=37930400855&charset=UTF-8&loc=http%3A//thissite.com/'; script = document.createElement 'script' script.type = 'text/javascript' script.src = src $('.banner-container').append script 因此,问题是在SRC变量中的URL是正确的,当将其插入DOM 时,它是正确的
有两个类似的项目: zepto.js Zepto是一个简约的JavaScript库,用于现代浏览器 与jQuery兼容的API很大程度上. jquery 2.0 jQuery 2.0 beta:这是您对未来的品味,可以更快,更小的jQuery而无需支持IE 6、7或8.这是平台特定于平台的HTML应用程序的绝佳选择. 这仅是关于性能还是遵循不同的方法? 解决方案 zepto.js和jQuery之间的主要区别是它们的Zepto.js的〜20KB的文件大小(Minified,Note glipped),而不是jQuery的〜80KB和Zepto.js的〜10KB(Minified,Gzpipped) jQuery的〜30kb.此外,Zepto对诸如IE
我正在为我的Web应用程序使用Zeptojs,但是如果浏览器不支持Zepto,我想回到jQuery.由于IE是目前唯一不支持的主要浏览器,因此我很想检测IE: if(navigator.appName == 'Microsoft Internet Explorer'){ // load jquery } else { // load zepto } ,但我宁愿在其他情况下特别检测Zepto支持并使用jQuery.是否有一个功能检测方法可以执行此操作? 解决方案 这可能是一个疯狂的主意(我不确定Zepto是否甚至会在未支撑的浏览器上加载),但是使用Zepto自己的浏览器检测到它是否在未支撑的浏览器上? ,该怎么办? $.os.ios // => true if running on Apple iOS $.os.android // => true if running on Android $.os.webos // => true
我想在zepto或jquery中发布带有$ .ajax的对象.两者都表现出同样的奇数错误,但我找不到我在做错什么. 使用" ResteAsy"这样的测试客户端发送时,数据将保存到服务器,我可以看到请求在浏览器的网络面板中被填写,所以我相信JS是罪魁祸首. 如果我将一系列对象作为帖子的数据属性发送,则不会正确发送它们. 数据对象: var postData = [ { "id":"1", "name":"bob"} , { "id":"2", "name":"jonas"} ] 请求: $.ajax({ url: _saveDeviceUrl , type: 'POST' , contentType: 'application/json' , dataType: 'json' , data: postData , success: _madeSave.bind(this) //, processData: false //Doesn't
zepto.js 具有一个可以动画元素的API功能. 然而 jquery型jquery type queue api 支持的. 我想知道是否有一种内置的方法可以用Zepto创建动画序列,或者我应该从某个地方捏一个队列函数? "完成"回调也没有通过任何参数,因此知道您所处的动画序列的哪个阶段很丑陋 - 也许有解决方法? 解决方案 我不确定您是否会发现它有用,但是我写了一个小插件来排队Zepto动画: $.fn.queueAnim = function (steps, callback) { var $selector = this; function iterator(step) { step.push(iterate); $selector.animate.apply($selector, step); } function iterate() { if (!steps.length) return callback
我正在构建一个iPad应用程序,该应用程序本质上是一系列幻灯片. 当我完成读取幻灯片后,我可以滑动到下一个幻灯片 *(使用Zepto的Swipe),该幻灯片将窗口更改为下一个幻灯片. (滑动事件已绑定到窗口.Body,因为它需要在整个页面上工作)... 这是一个问题:有些幻灯片具有交互式元素,例如按钮,可拖动项目等.问题是使用这些交互式元素时会触发滑动事件. 有人知道在这些情况下触发滑动触发的方法吗?也许设置灵敏度等? 我很难过... 最好的祝愿,非常感谢! 解决方案 Zepto管理触摸事件的方式是将听众绑定到touchstart,touchend和touchmove document.body上的事件.然后,它对要发送的事件进行计算,并在接收touchstart事件的元素上触发事件.然后,此事件通过DOM树冒泡,唤起每个元素的听众. 这为我们提供了两种防止滑动事件的方法: 首先,您可以做类似: 的事情 $('#my-child-el
我想知道是否可以查看 1.多少个活动听众 2.什么类型的事件听众 在一个网页上. 原因是因为我正在使用off();方法. 我正在使用此 是的,我正在使用,但甚至没有删除,而且我觉得元素上有一个以上的eventListener. 如果JavaScript不可能,则可能在浏览器中? 解决方案 Chrome具有一些内置工具.如果您打开元素检查器,请专注于元素,请滚动到右侧列的底部(在CSS/Metrics/etc所示),您应该看到一个下拉部分,其中显示了事件听众.这可以帮助一些... 通常,我发现只需通过控制台将事件侦听器添加到某些DOM元素并查看是否响应会更容易.或者,我在各个地方(设置听众和听众的回调之前)进行调试器.我通常遇到的问题是我认为存在的选择器或事件的绑定过早,并且错过了选择器. 其他解决方案 长期过去了... 我在Chrome Devtools中找到了新的东西. 简单,因为console getEv
我正在尝试将 JSON 对象发布到我的 Spring MVC 控制器,但我只收到一个 Access-Control-Allow-Origin 错误. 我的控制器: @RequestMapping(value= "/add", method = RequestMethod.POST, headers = {"content-type=application/json"}) public @ResponseBody Reponse addUser(Model model, @RequestBody @Valid @ModelAttribute("user") User user, BindingResult result) { if (result.hasErrors()) { Reponse error = new Reponse(); // etc...... return error; } else {