「createTextButton」をクリックすると、「currentTool」はそのボタンに関連付けられた関数に切り替わります。次に、誰かが描画面をクリックすると、currentToolに割り当てられた関数はaddEventListenerによって呼び出されますが、そうではありません。addEventListenerはその関数を使用していません
ここに何か不足していますか? Mozillaのドキュメントによれば、AddEventListenerは2番目のパラメータとしてオブジェクトまたは関数を受け取ることができます。 Node.JSでは、このようなコールバックを常に使用しています。ここに何か違うものはありますか?
var currentTool = null;
var svg = document.getElementById("drawing-surface");
var createTextButton = document.getElementById("createTextButton");
createTextButton.addEventListener("mouseup", function(event) {
currentTool = createText;
});
svg.addEventListener("mouseup", currentTool);
function createText(event) {
...
}
"createText"はどこで定義しましたか? –