在select标记中,有一个函数loadTags()
,在onclick
事件上调用。我正在使用mvc4并希望用_layout.cshtml
调用它,即共享视图:
<div class="left-menu">
<select id="tid" name="tags" onclick="loadTags()" >
<option value="tags">--Tags--</option>
</select>
</div>
如何在页面加载时调用此函数。这是loadTags()
函数
function loadTags() {
$("#tid option").remove();
var d = $("#tid").val();
var str = "--Tags--";
$.post("/Status/allTags", function (data) {
$("#tid").append('<option>' + str + '</option>');
$.each(data, function (i, item) {
$("#tid").append('<option value=' + i + '>' + item + '</option>');
});
}, "json");
}
答案 0 :(得分:3)
只需使用jQuery?
$(function() {
loadTags();
});
在调用此行代码之前确保已加载jQuery。
我不认为在用户点击元素时加载标记是一种很好的方法。例如,当用户使用Tab键导航到此元素时,标签将不会加载。
另外,如果您在页面加载时加载标记,是否仍然有意义通过AJAX加载它们?你不能把它们包含在页面本身中吗?
答案 1 :(得分:2)
将您的代码放入document.ready函数:
$(document).ready(function () {
loadTags();
});
或更短:
$(function () {
loadTags();
});
甚至更短:
$(loadTags);
<强> jfiddle 强>
.ready()
:
当JavaScript提供用于执行代码的load事件时 页面呈现,此事件在所有资产之前都不会被触发 如图像已被完全接收。在大多数情况下, 只要DOM层次结构完全可以运行脚本 建造。传递给.ready()的处理程序是保证的 在DOM准备好之后执行,所以这通常是最好的地方 附加所有其他事件处理程序并运行其他jQuery代码。使用时 依赖于CSS样式属性值的脚本,这很重要 以前引用外部样式表或嵌入样式元素 引用脚本。