我正在开发一个响应式站点,该站点具有一组特定的 jQuery 函数,用于桌面布局和移动布局。如果它们同时处于活动状态,它们会相互干扰。
通过检查 window.width,我只能在页面加载时提供正确的功能集,并且我想在 window.resize 上做同样的事情。
我已经在这里设置了一个精简的小提琴:http: //jsfiddle.net/b9XEj/
目前存在两个问题:
- desktopFunctions 或 mobileFunctions 将在页面调整大小时连续触发,无论它们是否已经加载。
- 如果窗口的大小调整超过一个断点,然后返回到以前的大小,则已经加载了不正确的函数集,从而干扰了当前集。
window.resize 函数的行为方式如下:
- 检查当前是否针对视口大小激活了正确的功能集
- 如果是,请返回。
- 如果否,则触发正确的函数集并删除不正确的函数集(如果存在)。
在上面的 Fiddle 示例中,您总是会看到一行,显示“移动功能处于活动状态”或“桌面功能处于活动状态”。
在这一点上我有点迷茫,但我尝试过使用
if ($.isFunction(window.mobileFunctions))
检查功能是否已经存在,但我似乎无法在不破坏整体功能的情况下使其工作。这是该代码的小提琴:http: //jsfiddle.net/nA8TB/
提前考虑,这种尝试也不会考虑是否已经存在不正确的函数集。所以,我真的希望有一种方法可以更简单地处理这个问题并解决这两个问题。
任何帮助将非常感激!