d3.brush コンポーネントをより適切に制御する方法を知りたいと思っていました。次のような追加のコントロールが必要です。
- 右クリック (通常のブラウザの代わりに特別なメニューを開きます - 奇妙なブラシの動作の代わりに)
- サイズ変更可能な(つまり、ユーザーがブラシを移動するだけでサイズを変更できない)ブラシ機能を無効にすることができました(制御したいときはいつでも)
ここで以前の同様の質問をいくつか読んだことがありますが、これまでのところ運がありません。
ブラシ領域で右クリックが発生したときに、次のように読み取ることができます。
//code from an older post
function rightClick() {
if (d3.event.sourceEvent.which == 3 || d3.event.sourceEvent.button
== 2) { //3==firefox, 2==ie
return true;
} else {
return false;
}
}
そして、ここに rightClicl() 戻り値を使用する私のコードがあります:
function brushed() {
if(rightClick()){
console.log("Right click : " + rightClick());
}
else {
console.log("Right click <false> : " + rightClick())
x.domain(brush.empty() ? x.domain() : brush.extent());
if(!brush.empty()){
//do something and redraw it
}
else{ //correctiong when brush.empty() restables x.domain to general value
resetView();
}
}//end-of first else
}
しかし、rightClick() が true になるたびに、ブラシは「通常の」左クリックとして機能します。
ヘルプ/洞察をいただければ幸いです。
お時間をいただきありがとうございます。