1

我的 D3 和 jQWidgets 大部分都可以很好地协同工作,但是 jQWidgets 会干扰 D3 画笔,因此它们不会响应 mouseup 事件。

您可以在这个简化的示例中看到,每当使用 jqxDragDrop 时,刷牙都会卡在刷牙状态。

代码在这里:

var scale = d3.scale.linear().range([0, 100]);
var brush = d3.svg.brush()
    .x(scale)
    .y(scale)
;    
d3.select("#brush").append("g")
    .call(brush)
;
$("#draggable").jqxDragDrop({});  // Remove me to fix brush
#brush {
    width: 100px;
    height: 100px;
    background-color: yellow;
}
#draggable {
    width: 100px;
    height: 100px;
    background-color: gray;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<link href="http://jqwidgets.com/public/jqwidgets/styles/jqx.base.css" rel="stylesheet"/>
<script src="http://jqwidgets.com/public/jqwidgets/jqx-all.js"></script>
<svg id="brush"></svg>
<div id="draggable"></div>

有趣的是,当我在 Chrome 上使用触摸仿真时,它似乎工作正常。

我对 javascript 事件调试没有太多经验,所以我对如何进行有点困惑。是否可以在不修改库的情况下进行修复?我应该如何解决这个问题?

4

0 回答 0