如何在mvc4中的页面加载上呈现任何事件函数

时间:2014-12-23 13:06:52

标签: c# jquery asp.net-mvc-4

在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");
}

2 个答案:

答案 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样式属性值的脚本,这很重要   以前引用外部样式表或嵌入样式元素   引用脚本。