我正在一个需要鼠标hover菜单的网站上工作。 我不建议从可访问性的角度看鼠标hover菜单,但使用jQuery实现起来相当容易。 问题是:我们还需要支持触摸屏设备(平板电脑)。 在这样的设备上,您没有鼠标,因此鼠标hover事件不起作用。 我希望jQuery有一个longpress事件,但事实并非如此。 我确实找到了一个使用谷歌的jQuery longclick插件 ,但它适用于jQuery 1.4,所以我并不热衷于使用它。 此外,jQuery插件网站目前正处于维护状态,因此不是很有帮助。 所以问题是:是否有一个优雅的jQuery 1.7 / 1.8插件来支持longpress / longclick事件?
所以,我把一个可折叠的菜单变成了一个基于网站的系统,它将菜单最小化到屏幕右上角的6个“gem按钮”,每个按钮看起来都一样,并且包含一个数字,这是指的警报数量。菜单中的项目。 这些内容与我的问题并不真正相关,但只是解释说它们不是文本的,因此不会有清晰易读的标签来解释菜单项的作用。 因此,我已经放了一个onMouseover工具提示,它显示一个隐藏的div,解释每个菜单项是什么。 还有一个onClick事件,jQuery将菜单滑入视图。 这是一个私人Intranet系统,我不会在公共网站上使用这些菜单,因为它不够清楚,但鉴于这是应用程序,我的问题是: 例如,当在iPad上观看时(可能是其他触摸屏设备),onMouseover被处理为onClick,因此,“点击”按钮只显示工具提示,而不是按要求显示菜单。 处理这个问题的建议是什么? 我看过这个post使用jQuery检测iPad用户? 所以,鉴于它是一个私人网络应用程序,我可以检测iPad用户并重新构建jQuery以忽略iPad用户的onMouseover命令,但如果我要将类似的应用程序扩展到可能拥有更多用户的东西,那将是什么处理这两个事件的方法?
我正在考虑将Twitter Bootstrap(TB)用于移动网络应用程序。 下一版TB, 版本3 ,声称是“移动优先”。 但是,查看包含的Javascript文件,我几乎只看到“点击”事件,几乎没有使用任何“触摸”事件。 TB依靠Jquery来处理事件。 此外,CSS中有许多“hover”定义,这些定义在触摸屏上不起作用。 即便如此,我还是在Googling上找到了很多关于在移动网络应用中使用TB的建议和教程。 我的问题是:Twitter Bootstrap在性能方面(主要是速度和响应时间方面)在触摸屏上的表现如何?
我正在试图弄清楚如何解决滚动时分配给元素的tapped类,但它生效太快了,我需要在实际触摸时稍微延迟它而不是在滚动时触摸,这是我的代码这个怎么运作: $(‘div, a, span’).filter(‘[tappable][data-tappable-role]’).bind(‘touchstart’, function() { var self = $(this); self.addClass(self.data(‘tappable-role’)); }).bind(‘touchend’, function() { var self = $(this); self.removeClass(self.data(‘tappable-role’)); }).bind(‘click’, function() { var self = $(this), goTo = self.data(‘goto’); if(typeof goTo !== ‘undefined’) { window.location = goTo; } }); 当滚动时,它会在我几乎没有碰到它时将类分配给元素,我想防止这种情况发生,除非它被正确触摸(没有点击)。 虽然我尝试使用setTimeout进行试验,但由于它延迟但效果不佳,但它仍会在以后分配该类。 这就是我用setTimeout做的方法: var currentTapped; $(‘div, a, span’).filter(‘[tappable][data-tappable-role]’).bind(‘touchstart’, function() { clearTimeout(currentTapped); var self = $(this); var […]