1
私は、キャンバスのdivでマウスをクリックすると選択マーキーボックスを作成するプラグインを作成しています。これまでのところ、click()
とmousemove()
というイベントをコードに入れてプラグインを作成しました(他のイベントの中にイベントを埋め込む方法はわかりません)。しかし、これは、マウスがクリックの前にキャンバス上を移動するときに問題になります。誰でもクリックでmousemoveハンドラを初期化する方法を知っていますか?クリック後のみmousemoveイベントを初期化する
$.fn.createBox = function(id) {
$(id).css({
cursor:'crosshair'
});
$(id).click(function(e) {
var clickLocX = e.pageX;
var clickLocY = e.pageY;
$('<div>').attr({
'class':'newBox',
'ctr':'on'
})
.css({
top:clickLocY,
left:clickLocX
})
.appendTo(id);
});
//Mousemove must be initialized only AFTER the click. HOW TO DO THIS?
$(id).mousemove(function(e){
var XpageCoord = e.pageX;
var YpageCoord = e.pageY;
window.Xloc = XpageCoord;
window.Yloc = YpageCoord;
var boxOffset = $('.newBox').offset();
var boxHeight = YpageCoord - boxOffset.top;
var boxWidth = XpageCoord - boxOffset.left;
$('.newBox').css({
height:boxHeight + 'px',
width:boxWidth + 'px'
});
});
}
@Ed_S - あなたは何を意味するのかを教えていただけますか?それは多くの助けになるでしょう。 – dopatraman
@コーデニンジャー:さて、そこに行くよ。私は一般的にjqueryやWeb開発の専門家ではありませんが、ここでは一般的な概念が適用されます。ハンドラを一度だけ割り当て、クリック後に割り当てます。 –
@Ed_S .-- Ok、明確にするために: 'assignedMoveHandler'は関数ですか?またはjqueryオブジェクト?私はまだ一種の迷子なので、仮説的な例を使うことができますか? – dopatraman