我有D3和jQWidgets一起工作得很好,但是jQWidgets干扰D3画笔,这样他们就不会对鼠标事件做出反应。
您可以在此简化示例中看到,只要使用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>
&#13;
有趣的是,当我在Chrome上使用触控模拟时似乎工作正常。
我没有很多关于javascript事件调试的经验,所以我对如何继续进行有点难过。是否可以在不修改库的情况下进行修复?我应该如何解决这个问题?