繁体   English   中英

如何检查是否加载了部分视图,然后加载javascript

[英]how to check if partial view is loaded and then load javascript

我有关于一个问题的查询。 当我的应用程序使用部分视图时,这些部分视图通过ajax调用以及每个部分视图的用法javascript和include js文件加载,该文件最终会调用数据库为该特定视图绑定数据。 现在,加载视图所花费的时间比预期要多,因为它加载了js文件,并且该js文件再次调用服务器以提取记录。 我希望先加载我的视图,然后再加载js文件,该文件使数据库调用绑定数据。 如下所示-

如果(partialview已加载)加载js文件,这将使ajax调用和db最终绑定数据。

这至少将加载视图,并且用户将看到一些东西,而不是等待加载器的空白背景。 以下是我加载PartialView的脚本。

    function loadview(action, hassubmenu, _fromtab) {
    if (hassubmenu == 'true') {
        return false;
    }
    if (!_fromtab) {
        $('.process').show();
        $('.mainbody').html('');
    }
    // call ajax to load view
    $.ajax({
        url: urlheader + "Home/LoadView/",
        type: 'POST',
        data: {
            'view': action
        },
        success: function (data) {
            // This outputs the result of the ajax request                       
            $('.process').hide();
            if (!_fromtab) {
                $('.mainbody').html('').html(data);
                // disable appfilter from start screen
                var ostype = $('select#selection').find('option:selected').data('ostype');
                var did = $('select#selection').find('option:selected').val();
                if (ostype.toLowerCase() == 'ios' && action == 'Start') {
                    $('div.appfilter').hide();
                    $('#liAppFilter').hide();
                }
                getsyncinfo(did, false);
                if (_currenttab != undefined) {
                    reloadCurrentFilterTab(_currenttab);
                }
            }
            else
                $('.chicoAppsUrlsDetails').html('').html(data);
        },
        error: function (errorThrown) {
            console.log(errorThrown);
        }
    });
}

如果我理解正确,部分事件中的html不会触发js事件(这些事件会被取消)

这是因为正在加载到页面上的html在js之后(绑定了您的事件)。

您需要将部分视图中dom上的所有事件放置在document元素上,而不是使用jquery on方法来指定选择器。

例如。

$(document).on('click', '.some-class', function(){
  //do stuff
});

这样,您可以使用ajax向页面中添加局部对象,并且局部对象中的dom仍然会触发事件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM