2014-02-24 62 views
0

任何想法爲什麼此代碼不起作用?我在HTML中用這個ID定義了一個文本輸入字段。Document.ready將不起作用

$('document').ready(function() 
{ 
    $('#inputUsername').keyup(alert("something")); 
} 
); 
+0

我希望的代碼只出現一次工作。好吧,至少似乎工作。您將在沒有執行關鍵幀的情況下獲得關於dom的警報,那麼您可能會在控制檯中看到錯誤。 –

+0

@KevinB確實如此,因爲我在小提琴中進行了測試 – Huangism

回答

11

keyup需要一個功能:

$('#inputUsername').keyup(function() { 
    alert("something") 
}); 

或者,前手定義函數:

function clickHandler(event) { 
    alert("something"); 
} 

,並傳遞它:

$('#inputUsername').keyup(clickHandler) 

並取消引用document - 這是它自己的變量。

+0

@JasonP - 更新了答案以顯示兩種情況。 – tymeJV

3

文檔是瀏覽器中的變量。你不需要單引號:

$(document).ready(function() { ... }); 
+2

這是真的,但不是問題,即使它被引用,jQuery也會發現它。 – adeneo

0

您的代碼會試圖選擇名爲文檔中的元素在這個例子。

<document></document> 

相反,你要使用的文件名爲全局變量,或使用簡寫,這是隻直接傳遞你的處理函數到jQuery選擇。

$(document).ready(function(){ 
    // this runs on DOM ready 
}); 

$(function(){ 
    // this runs on DOM ready 
}); 
+0

在$('document')。ready(...)'的情況下,jQuery假定你指的是'document':http://jsfiddle.net/T5eQs/ –

+0

jquery實際上忽略了當你使用'.ready'時它會試圖選擇它,但它不會被使用。 –

+0

@JasonP我找不到任何文檔來支持這個,但是你的小提琴確實證明了它。 –

0

你的錯誤是在這裏:

$('#inputUsername').keyup(alert("something")); 

.keyup需要一個功能,以上。你可以這樣做:

$('#inputUsername').keyup(function(){alert("something")}); 

它只會調用一個函數;)