jQuery文件在实际读取之前就已准备就绪

Fre*_*tif 0 jquery

我把我的 $(document).ready()代码放在文档的HEAD中,在我的内部alert($("#some-textbox").val()),但是当页面加载时会产生"undefined".但是,如果我将此代码移动到页面的页脚,它可以工作.

码:

<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>
Run Code Online (Sandbox Code Playgroud)

Nic*_*ink 5

您的选择器$("some-textbox").val()无效.

你的意思是

$(".some-textbox").val()
Run Code Online (Sandbox Code Playgroud)

要么

$("#some-textbox").val()
Run Code Online (Sandbox Code Playgroud)

也许?

更新(问题已更改)

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

$(document).ready(function() {
    var searchForm = $("#search-form");
    var searchBar = $("#search-bar");
    //....
});
Run Code Online (Sandbox Code Playgroud)