簡體   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