【问题标题】:jquery single click doesn't work on mousedown/hover eventjquery 单击对 mousedown/hover 事件不起作用
【发布时间】:2013-07-19 04:17:18
【问题描述】:

http://jsfiddle.net/vd6vG/

如果您将鼠标悬停在 td 上,它们会变成红色,但如果您点击,则不会发生任何事情

所以我假设点击事件不会触发鼠标按下?我怎样才能让它在点击时也能工作?

注意:我实际上是用 SVG 做的,但是这个表格版本显示了同样的问题

这是为了 SO 规则的利益的 jquery

var md = false;

$(document).mousedown(function(e){
        e.preventDefault();
        md = true;

        }).mouseup(function(){

        md = false;

       })

$("td").hover(function(){

    if(md) $(this).css("background","#f00");

})

【问题讨论】:

  • 您希望在这里发生什么?你mousedown,将md设置为true,然后当你释放鼠标时,它又回到false,这正是你想要的?我添加了日志语句:jsfiddle.net/vd6vG/1 -- 单击并拖动一些td,它工作正常。
  • 单击不起作用,根据标题
  • 嗯,没有点击处理程序.. :)

标签: jquery


【解决方案1】:

只需为点击事件添加一个单独的处理程序。

$("td").click(function(){

    $(this).css("background","#f00");

})

【讨论】:

  • 这是唯一的解决方案吗?我无法从 SVG 中获取对象,我的错我应该发布 SVG 版本
  • @jimsmith:您可以编辑您的问题并添加 SVG 示例。
  • @jimsmith 我没记错。我有一个基于 SVG 的项目在工作,我将点击事件附加到 SVG <circle> 对象。就我而言,我相信我使用过 $('#svg').on('click', 'circle', function() { /* do stuff */ }); 类似的原则应该适用于其他 SVG 元素。
  • J.大卫史密斯 - 非常感谢!
猜你喜欢
  • 1970-01-01
  • 2018-09-18
  • 1970-01-01
  • 1970-01-01
  • 2013-06-01
  • 2011-12-18
  • 1970-01-01
  • 2018-10-21
  • 1970-01-01
相关资源
最近更新 更多