如何替换$(document).ready函数?

时间:2015-12-24 13:41:03

标签: javascript jquery asp.net-mvc

我遇到了问题而且不知道如何修复它。 A有以下js脚本:

$(function () {
    $.ajaxSetup({ cache: false });
        var timer = window.setTimeout(function () {
        $(".alert").fadeTo(1000).slideUp(1000, function () {
            $(this).hide();
        });
    }, 3000);
    $(document).on("click", "[data-hide]", function () {
        if (timer != null) {
            clearTimeout(timer);
            $(this).closest("." + $(this).attr("data-hide")).hide();
        }
    });
});

<div class="well">
    <h3>
        <strong>@Model.Name</strong>
        <span class="pull-right label label-primary">@Model.AverageRaiting.ToString("# stars")</span>
    </h3>
    <span class="lead">@Model.Description</span>
    @Html.DialogFormLink("Update", Url.Action("UpdatePhoto", new {id = @Model.PhotoId}), "Update Photo", Url.Action("Photo"))
    @Html.Action("InitializeAlerts")//When this action is executing the document was already ready (by the first time when full page was loading), so I have no chanse to catch any .alerts in js alert file after updating this partial for another one.
</div>

有时候我的文件比我在部分视图中有任何.alert类更准备好了。那么,在使用有效.alert

更新部分视图后,如何重写函数以执行它

2 个答案:

答案 0 :(得分:2)

您需要等待select or count (or select top) the records where collection_date_user < return_date_in_db and return_date_user > collection_date_in_db 首先存在,或者您需要在加载处理中添加代码。

如果你不想紧紧地连接你的JS文件,你可以播放一个&#34;面板加载&#34;来自其他脚本的事件,您在文档级别捕获。

e.g。

$(",alert")

并听取通用&#34;面板加载&#34;主要活动:

e.g。

$.ajax({...}).done(function(loadedhtml){
    $somepanel.html(loadedhtml);
    $(document).trigger("panelloaded", $somepanel);
});

答案 1 :(得分:0)

如果您重新加载部分视图,我认为最好将代码放在.ajaxComplete()函数中。

在你的ajax请求完成后,它将准备就绪。