我正在使用d3.js v5.4.0
。
以下是我收到的错误:Uncaught Error: unknown type: dragend
。
这是因为我试图做以下事情:
d3.drag()
.subject(function(d){
return {x: d.x, y: d.y};
})
.on("drag", function(args){
thisGraph.state.justDragged = true;
thisGraph.dragmove.call(thisGraph, args);
})
.on("dragend", function() {
// todo check if edge-mode is selected
});
现在似乎已弃用dragend
。
我试图找出发布说明,这些说明会在here之后的较新版本中描述替代方案,但无法做到这一点。
请帮我解决问题。
答案 0 :(得分:1)
目前你可以用拖拽听到的三个事件(v4& 5. v3和之前的版本不同):
start - 新指针变为活动状态后(在mousedown或touchstart上)。 拖动 - 在活动指针移动后(在mousemove或touchmove上)。 结束 - 在活动指针变为非活动状态后(在mouseup,touchend或touchcancel上)。 (docs)
所以,你应该只需要将dragend改为end
<script src="https://d3js.org/d3.v5.js"></script>
&#13;
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/arootLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:background="@android:color/white"
android:orientation="vertical">
<android.support.design.widget.TabLayout
android:id="@+id/tabLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_below="@+id/tabLayout"
android:layout_weight="1"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</LinearLayout>
<android.support.design.widget.BottomNavigationView
android:id="@+id/navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"
app:itemIconTint="@android:color/background_dark"
app:itemTextColor="@android:color/background_dark"
app:layout_behavior=".Helper.BottomNavigationBehaviour"
app:menu="@menu/bottom_navigation_menu" />
</LinearLayout>
&#13;