2012-08-08 21 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