【发布时间】:2012-12-01 20:51:52
【问题描述】:
我正在开发一个响应式站点,该站点具有一组特定的 jQuery 函数,用于桌面布局和移动布局。如果它们同时处于活动状态,它们会相互干扰。
通过检查 window.width,我能够在页面加载时只提供正确的功能集,我想在 window.resize 上做同样的事情。
我已经设置了一个精简的 Fiddle,我在这里:http://jsfiddle.net/b9XEj/
目前存在两个问题:
- desktopFunctions 或 mobileFunctions 将在页面调整大小时持续触发,无论它们是否已加载。
- 如果窗口的大小调整到超过一个断点,然后返回到之前的大小,则已经加载了不正确的函数集,从而干扰了当前集。
window.resize 函数应该以下列方式运行:
- 检查当前是否针对视口大小激活了正确的函数集
- 如果是,请返回。
- 如果不是,则触发正确的函数集并删除不正确的函数集(如果存在)。
在上面的 Fiddle 示例中,您总是会看到一行,显示“移动功能处于活动状态”或“桌面功能处于活动状态”。
此时我有点迷茫,但我尝试过使用
if ($.isFunction(window.mobileFunctions))
检查功能是否已经存在,但如果不破坏整体功能,我似乎无法让它工作。这是该代码的小提琴:http://jsfiddle.net/nA8TB/
提前考虑,这种尝试也不会考虑是否已经存在不正确的函数集。所以,我真的希望有一种方法可以更简单地处理这个问题并解决这两个问题。
任何帮助将不胜感激!
【问题讨论】:
-
相当容易设置一个标志,这样更改就不会重复发生......但是这个声明
remove incorrect set of functions if they exist...你不能删除函数,你只能把它们写满。听起来您需要重新设计应用程序 -
我对 JavaScript 还很陌生,但到目前为止,我已经为该站点提供了一组相对易于管理的功能。您如何建议重新设计代码?
标签: javascript jquery function responsive-design viewport