RobotJSを使用してElectronアプリにカラーピッカーを追加しています。ユーザーがボタンをクリックすると、.click()
が、入力時にプロキシとして機能する入力(hidden opacity: 0; height: 0px; width: 0px;
)ユーザはカーソル位置で色をフェッチするために(.blur()
)をクリックします。次に、その色を別の入力フィールドに入れて戻ります。ただし、ユーザーが返された入力フィールドをクリックしてからクリックすると、.blur()
が引き続きトリガーされます。なぜこれが、どうすればそれを防ぐことができますか?返信後に関数がまだ実行中
<input class="clickProxy" style="opacity: 0; height: 0px; width: 0px;" />
$('.color_picker').click(function(){
getColorAtPointer();
});
function getColorAtPointer(){
$('input[name="colorSample"]').focus();
$('input[name="colorSample"]').blur(function(){
var mouse = robot.getMousePos();
$('input[name="colorSample"]').val('#'+robot.getPixelColor(mouse.x, mouse.y));
return;
});
}
ありがとう!
ありがとう! – Jam3sn
現実的には、その「復帰」は必要ありません。 – Jam3sn
正しい。イベントハンドラは、返す場合は 'false'の戻り値を認識します。これにより、イベントの伝播/バブリングが防止されます。もちろん、関数からの呼び出しの戻り値をjavascriptで返すと 'undefined'が返ってきます。 – Marie