2012-08-08 62 views
2

我在HTML頁面輸入:對象在谷歌瀏覽器沒有方法「專注」

<input id="Name" name="Name" tabindex="0" type="text" value="Name:" /> 

我寫的JavaScript與jQuery綁定事件「聚焦狀態」處理器和「的onblur」:

<script type="text/javascript"> 
    var name = $("#Name"); 
    name.focus(function() {if ($(this).val() == "Name:") $(this).val('');}); 
    name.blur(function() {if ($(this).val() == "") $(this).val("Name:");}); 
</script> 

所以,當用戶選擇輸入時,它的值應該是空的。如果用戶未在輸入中輸入文本並更改焦點,則輸入值將返回到「名稱:」。

它在Firefox,Internet Explorer和Opera中運行良好,但在谷歌瀏覽器中不起作用。另外,chrome調試器有錯誤:「Uncaught TypeError:Object [object Object] has no method'focus'」。

如何在Google Chrome中將處理程序與jQuery綁定? 謝謝!

+0

是輸入標籤後面的腳本標籤嗎?頁面上是否有id =「Name」的其他元素? – hackattack 2012-08-08 20:53:30

+0

它適用於OS X上的Chrome 22。 – 2012-08-08 20:54:40

+1

這裏可以正常工作http://jsfiddle.net/j08691/nccq5/。你是否將它包含在document.ready調用中? – j08691 2012-08-08 20:56:37

回答

3

不知何故,Chrome不喜歡你的變量在這種情況下被命名爲「name」。以下作品

<script type="text/javascript"> 
    var name2 = $("#Name"); 
    name2.focus(function() {if ($(this).val() == "Name:") $(this).val('');}); 
    name2.blur(function() {if ($(this).val() == "") $(this).val("Name:");}); 
</script> 
+0

哈哈!真!謝謝! – greatromul 2012-08-08 21:18:06