最初の要素をクリックしてから2番目の要素をクリックして、2つのdom要素間の関係を定義したいと思います(私の特定のケースでは、ノード間に線を引きます)。以下は私のアプローチです。特にエレガントでもクリーンでもないと思います。これを行うためのより良い方法はありますか?
$(function() {
var State = {
initialClick: false, // tracks clicks status for drawing lines
initialID: undefined // remember data gotten from the first click
};
...
$map.on('click', '.node', function() {
var $this = $(this),
currentID = $this.attr('data-id');
if (State.initialClick) {
if (State.initialID === currentID) {
// process first click
} else {
// process second click
}
resetClickTracking();
} else {
setState(currentID);
}
});
...
function setState(id) {
State.initialClick = true;
State.initialID = id;
}
function resetState() {
State.initialClick = false;
State.initialID = undefined;
}
});