私は JavaScript と jquery の両方に不慣れで、小さな問題があります。最新バージョンの Chrome と Firefox の両方で発生しているため、ブラウザの問題ではないと思います。
関連するコードはこちらです (これは、HTML ページのスクリプト タグ内の自己呼び出し関数です)。
(function () {
"use strict";
var submitbutton = $('#submitcommand'),
textinput = $('#textinput'),
userinput = textinput.val();
submitbutton.on('click', function() {
alert("textinput is " + textinput.val()); // => works
alert("userinput is " + userinput); // => undefined
});
}());
「textinput.val()」を使用すると、alert() の最初の呼び出しは正常に機能します。「userinput」が「undefined」と評価されるため、alert() の 2 回目の呼び出しでは、表示されるテキストは返されません。
Firebug コンソールに移動して、4 つのステートメント (2 つの割り当てと alert() への 2 つの呼び出し) を次々に貼り付けてみました。それはうまくいき、私が期待する結果が得られます。
問題は、on('click') 関数内の 'userinput' 変数について何が変わるかということです。ここには何が表示されていませんか?
前もって感謝します!