JQuery当文档在浏览器中准备就绪时,为什么会运行以下触发事件。我的经验很少,JQuery所以我有点坚持这个。
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
</head>
<form name="f1" id="f1">Input:
<input list="br" name="b" id="b">
<datalist id="br">
<option value="10">
<option value="11">
<option value="12">
<option value="100">
<option value="101">
</datalist>
</form>
<br>
<fieldset>
<legend id="result"></legend>
</fieldset>
<script>
$("#b")
.change(function () {
var str = $('#b').val();
$("#result").text(str);
$.get("cgi-bin/something.cgi?s=" + str, function (data) {
$("body")
.append("Name: " + data.name)
.append("Time: " + data.time);
}, "json");
alert("Load was performed.");
})
.change();
</script>
Run Code Online (Sandbox Code Playgroud)
如果您还可以告诉我为什么“cgi-bin/something.cgi?s=”+ strstr在Get请求中不包含 var ,则加分。在此先感谢您的帮助。
小智 6
该change()事件在加载时触发,因为它在没有参数的情况下被调用。代码的极其简化版本如下所示:
$("#b").change(function(){ /*do stuff*/ }).change();
Run Code Online (Sandbox Code Playgroud)
这可能会令人困惑,因为该change()函数充当处理程序或触发器,具体取决于参数的传递方式(请参阅此处的文档)。
只需删除额外的change()调用就可以解决问题。