2012-12-14 31 views
0

我将我的$(document).ready()代码放在文档的HEAD中,其中有alert($("#some-textbox").val()),但是当页面加载时会产生“undefined”。但是,如果我将此代码移动到页面的页脚,它就会起作用。在实际阅读之前触发jQuery文档

代码:

<head> 
... 
<script type="text/javascript"> 
    var searchForm = $("#search-form"); 
    var searchBar = $("#search-bar"); 
    var INITIAL_TEXT = "Start typing to find friends or colleagues..."; 
    $(document).ready(function() { 

     alert(searchBar.val()); // For testing purpose only; outputs undefined 

     searchForm.submit(function(e) { 
      if(searchBar.val() == INITIAL_TEXT) { 
       searchBar.val(""); 
      } 
     }); 
     searchBar.focus(function() { 
      if(searchBar.val() == INITIAL_TEXT) { 
       searchBar.val(""); 
      } 
     }); 
     searchBar.blur(function() { 
      if(searchBar.val() == "") { 
       searchBar.val(INITIAL_TEXT); 
      } 
     }); 
    }); 
    </script> 
+1

是否在调用$(document).ready()之前包含jquery脚本? – svillamayor

+0

是的。浏览器控制台没有错误 –

+0

@FreemanLatif你应该发布更多的代码,否则这将变成猜谜游戏。 – Trufa

回答

3

您获取该对象的doucment.ready外面当DOM hans't尚未加载里面。

将整个代码移入该函数。

+0

是的,它移动它,它现在的作品。干杯! –

5

你选择$("some-textbox").val()是无效的。

您的意思是

$(".some-textbox").val() 

$("#some-textbox").val() 

可能?

更新(问题改变)

您应该移动的变量定义的document.ready

$(document).ready(function() { 
    var searchForm = $("#search-form"); 
    var searchBar = $("#search-bar"); 
    //.... 
}); 
+0

或#some-textbox – Trufa

+0

是的,这是一个错字,对不起。 –

+1

@FreemanLatif在这种情况下,您的html中可能有重复的ID –

相关问题