このコードが機能しない理由が気になります。
関数$note
内の変数が見えないhey()
function hey(kc) {
$note.html(kc);
}
$(function () {
var $note = $('#note');
hey("Joice");
});
http://jsfiddle.net/VcdxB/で遊ぶフィドル
このコードが機能しない理由が気になります。
関数$note
内の変数が見えないhey()
function hey(kc) {
$note.html(kc);
}
$(function () {
var $note = $('#note');
hey("Joice");
});
http://jsfiddle.net/VcdxB/で遊ぶフィドル
関数内で var キーワードを使用する場合は、関数スコープ (関数自体と内部の他の関数) 内でのみ表示されるローカル変数を宣言します。
他の人が言ったように、それは範囲の問題です。これは、jQuery オブジェクトをキャッシュするための私のパターンです。
// global scope
// single hash to hold all reference to cached jQuery objects
var $jq = {};
$(function() {
$jq.note = $('#note');
$jq.name = $('#name');
});
function hey(kc) {
$jq.note.html(kc);
}
変数のスコープをグローバルにする必要があります。これを使用します。
var $note;
function hey(kc) {
$note.html(kc);
}
$(function () {
$note = $('#note');
hey("habi");
});
イベントにバインドされた関数に対してローカルであるためです。ready
これを確認してください:http://jsfiddle.net/VcdxB/1/
function hey(kc) {
$note.html(kc);
}
// now it will be visible in both functions
var $note = $('#note');
$(function () {
hey("habi");
});
$note 変数のスコープは、その document.ready() 関数に限定されます。$(function () etc...
スコープを正しく設定するには、の外に移動する必要があります。次に、その関数に割り当てることができます。
var $note;
$(function () {
$note = $('#note');
hey("habi");
});