响应式 jQuery 不起作用:单击宽度低于 768px 并将鼠标悬停在 768px 上方
Responsive jQuery doesn't work: Click below 768px width and hover above 768px
当我将鼠标悬停在 li 上时,我需要打开一个菜单,当窗口宽度低于 768px 时,当我单击相同的 li 时,它需要打开。我一直遇到点击或悬停在两种屏幕尺寸(0-768px 和 769 及以上)之间传递的问题。
function colorChangeTest(width){
if (width <= 767) {
$('li').click(function() {
$(this).toggleClass('colorChange');
});
} else {
$('li').hover(function() {
$(this).toggleClass('colorChange');
});
}
}
$(function () {
var onLoadWidth = $(window).width();
colorChangeTest(onLoadWidth);
$(window).resize(function () {
var resizeWidth = $(window).width();
colorChangeTest(resizeWidth);
});
})
JSFIDDLE 示例
执行响应式jQuery的最佳方法是什么,它可以根据屏幕大小单击或悬停,并在页面加载和窗口大小调整时确定?
仅供参考,最好在代码中将相同的事件侦听器附加到相同的元素。在您的情况下,每次调整窗口大小时,都会一次又一次地附加新的事件侦听器(悬停或单击)。
用unbind
来捡它。例如:
function colorChangeTest(width){
var $li= $('li');
$li.unbind();
if (width <= 767) {
$li.click(function() {
$(this).toggleClass('colorChange');
});
} else {
$li.hover(function() {
$(this).toggleClass('colorChange');
});
}
}
相关文章:
- EaseJS拖放;放下(动画CC)电影剪辑的鼠标坐标
- 当鼠标悬停在文本中的单词上时显示警报
- JsFiddle上的鼠标事件不起作用
- 每当您在选择器内移动鼠标时,悬停功能就会重复
- 如何在鼠标悬停时在另一个图像上滑动图像.
- 鼠标悬停事件影响列表中所有行中的按钮,而不仅仅是特定按钮
- 将鼠标旋转限制为特定的度数
- 跟踪jqplot垂直折线图的鼠标位置
- node-webkit-从父窗口捕获iframe鼠标事件
- 悬停下拉菜单即使在鼠标移出后也保持活动状态
- Javascript-在视频中跟踪鼠标位置
- JQuery UI可拖动潜水与滚动棒到鼠标
- 如何在jquery中找到鼠标滚轮/触摸移动事件的走向
- 在鼠标悬停时展开列表
- jQuery悬停在没有鼠标悬停的情况下启动
- 鼠标输入在 YUI 的 chrome 中不起作用
- 鼠标悬停时如何居中放大背景图像
- 如何激活下拉菜单:在一个元素上单击768px宽度下方,在另一个元素上将鼠标悬停在768px上方
- 响应式 jQuery 不起作用:单击宽度低于 768px 并将鼠标悬停在 768px 上方
- 触发鼠标滚轮在桌面从左到右滚动,在窗口宽度低于768px时从上到下滚动