jQuery单击事件仅在Chrome中移动鼠标后才起作用

Posted

技术标签:

【中文标题】jQuery单击事件仅在Chrome中移动鼠标后才起作用【英文标题】:jQuery click event only working after moving the mouse in Chrome 【发布时间】:2015-07-31 18:42:45 【问题描述】:

所以我知道有更好的方式来切换风格,但请耐心等待......

Chrome(但不是 Firefox)上似乎发生了一个小错误,其中“点击”事件在事件发生后鼠标移动之前不会执行任何操作。

$(function()
    $('#selectsomething a[rel$=".css"]').click(function(e)
        e.preventDefault();
        $('link.skeletor').attr('href', $(this).attr('rel')); 
    );
);

因此,如果您单击链接但不移动鼠标,则不会发生任何事情...您认为这可能是 Chrome 的合法错误还是我做错了什么?

【问题讨论】:

我无法理解为什么这得到了 5 票。我也无法重现您的问题。您可以创建一个显示问题的堆栈 sn-p 或 jsFiddle 吗?这是我在 Chrome 中运行良好而无需移动鼠标jsfiddle.net/j08691/e6k2zzsc 附带说明,具有rel 属性的锚标记包含以.css 结尾的值是无效的。根据MDN:“...该属性指定目标对象与链接对象的关系。值是一个逗号分隔的链接类型值列表...”可以找到有效的链接类型here。 【参考方案1】:

我不明白为什么这不起作用(除了奇怪的 rel="" 使用)。

如果您尝试使用带有多个 js 实例的缩小版或版本,问题可能是使用 .click 而不是 .on('click', function(e))

要查看我想说的示例,check out my Fiddle.

关于这两种点击功能的区别的完整解释请查看this overflow

【讨论】:

以上是关于jQuery单击事件仅在Chrome中移动鼠标后才起作用的主要内容,如果未能解决你的问题,请参考以下文章

JQuery:如何仅在完成调整大小后才调用 RESIZE 事件?

jQuery事件

Chrome浏览器下JQuery实现鼠标左键按下移动,鼠标左键抬起停止移动功能的问题

使用Jquery或Javascript触发mousemove事件

jQuery中的事件与动画

表视图 didSelectRowAtIndexPath,仅在选择第二次单击后才有效