JQuery的load()和delay()函数不起作用

时间:2011-10-10 17:25:17

标签: jquery load delay

我正在尝试使用jquery在表单输入中设置一些默认文本。文本将是动态的,所以我不能在html中设置它。我希望jquery等待表单加载。

延迟功能设置文本,但根本不延迟。它是即时的。

加载函数中似乎没有任何内容执行。

HTML code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Testinput</title>
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript" src="testinput.js"></script>
</head>

<body>
<form>
  <input size="20" name="thing" />
  <input type="image" src="" name="submit" value="go" />
</form>

</body>
</html>

JQuery代码:

$(document).ready(function(){

var $input = $('input[name="thing"]');
$input.val("");

var query = "orange";

//$input.delay(10000).val(query); // No delay!

$input.load(function(){ 
// Nothing happens!!
alert("form loaded");
$input.val(query);
});

});

尝试了jquery-1.6.4.min.js和jquery-1.4.min.js无济于事。


编辑: 我无法回复回复,堆栈溢出的javascript似乎对我来说似乎没有正常工作。我得到“Stack Overflow需要来自另一个域的外部JavaScript,它被阻止或无法加载”。

我使用Clive的答案得到了延迟函数,但有没有办法让jquery在运行代码之前等待表单先加载?

1 个答案:

答案 0 :(得分:3)

delay()与队列有关,而不是任意函数,因此您需要使用setTimeout()代替:

window.setTimeout(function () {
  var $input = $('input[name="thing"]');
  var query = 'orange';
  $input.val(query);
}, 10000);

同样load()是一个函数:

从服务器加载数据并将返回的HTML放入匹配的元素中。

它不适用于你想要做的事情