jQuery click() 在悬停状态处于活动状态之前不会在点击时触发

jQuery click() not firing on tap until hover state is active

本文关键字:活动状态 click 悬停 状态 jQuery      更新时间:2023-09-26

我的页面上有一个元素,我用jQuery定位了它,以便在click()上运行一个小函数。

此元素使用 CSS 设置样式,opacity设置为 0.5 ,然后在悬停时,更改为 1.0

过去,在悬停时更改元素的opacitydisplay属性以使需要在触摸屏设备上"点击"两次时,我遇到了一些问题。

例如,如果我有一个围绕div的锚点选项卡,在悬停时,它正在更改div内元素的opacitydisplay属性,以重定向到锚点href我必须点击该元素两次。

我认为这可能是同一类问题。我想我可以通过监听click()tap()事件来解决这个问题,但是我需要加载jQuery Mobile,这是我真的不想这样做。

简而言之:在某些移动设备上,我必须单击该元素一次,这会将元素置于悬停状态,然后再次单击该元素才能触发 jQuery click() 事件。

这是我正在使用的jQuery,包装在DOM中:

$('#scroll-down').click(function(e) {
    e.preventDefault();
    page.on("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove", function() {
        page.stop();
    });
    page.animate({
        scrollTop: viewportHeight + 2
    }, 1000, function() {
        page.off("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove");
    });
    return false;
});

它会向下滚动视口的高度,加上 2 个像素。

有什么想法吗?

正如 Aaron 所建议的那样,使用 .on('click') 似乎已经解决了这个问题。