javascript - 如何在javascript中使用shift + click?

标签 javascript d3.js

我有一个使用 D3 的力导向图,我可以使用单击按钮进行平移。 我想做的是按住 Shift 键并单击以执行此操作。

现在我有了这段代码:

这是在我单击鼠标时查看是否单击了 shift 按钮:

.on("click", function() {
    if (d3.event.shiftKey) {
        console.log("Mouse+Shift pressed");
        svg.append('svg:rect')
    .call(zoom);
    }
})

缩放功能:

var minZoom = 0.2,
    maxZoom = 2;
    var zoom = d3.behavior.zoom()
    .on("zoom", redraw)
    .scaleExtent([minZoom, maxZoom])//-call zoom but put scale extent on to limit zoom in/out
    ;

进行平移和缩放的重绘函数:

function redraw() {
    inner.attr("transform","translate(" + d3.event.translate + ")" + " scale(" + d3.event.scale + ")"); 
    }

现在,这种作品。我已经将控制台登录到调试它,发生的事情是,当我按下 shift 键并单击鼠标时,“console.log 字符串”只有在我松开鼠标按钮时才会打印出来。

但我希望它在按下鼠标按钮时工作。我试过 mousedown、mouseover 和 click,还有其他方法吗?

我做错了什么?

最佳答案

您应该使用 jQuery 的 .keydown() 事件。它应该可以解决您的问题。

这是文档的链接: http://api.jquery.com/keydown/

希望对您有所帮助!

关于javascript - 如何在javascript中使用shift + click?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27403744/

相关文章:

javascript - RGraph饼图不刷新值

javascript - slim 的框架 : pass environment variables to client-side bundle at runtime

javascript - JQuery 最小化和最大化 HTML Div

javascript - 带动画的子选择删除

javascript - 如何创建 Javascript 桌面镜头

javascript - 标记映射 : Insert the mindmap to the HTML

javascript - 如何覆盖 Mustache.js、Hogan.js 或 Handlebars.js 的默认输出插值?

javascript - 如果所有<li>都有属性显示: none;,如何隐藏()div与ul列表

javascript - 使用 javascript 和 d3 上传 csv 文件

animation - 如何为元素设置动画以跟随 d3 中的圆弧质心?