達(dá)令說(shuō)
2023-10-14 18:51:45
我正在構(gòu)建一個(gè)新的個(gè)人博客,并使用 ajax 發(fā)回 C# 控制器以獲取分頁(yè)結(jié)果。第 2 頁(yè)加載了結(jié)果,但是沒(méi)有重新加載任何 JavaScript,因?yàn)槲蚁嘈牛?dāng)我部分重新加載頁(yè)面的分頁(yè)部分時(shí),它會(huì)破壞 DOM 中的所有內(nèi)容,并且因?yàn)檎麄€(gè)頁(yè)面不會(huì)重新加載,所以 JavaScript 不會(huì)重新加載。 t 調(diào)用。因此,我正在尋找一些幫助來(lái)解決如何讓外部 javascript 再次運(yùn)行。它的作用是添加 css 類(lèi),提供一些淡入淡出效果等。 success: function (data) { if (data != null) { var page = data $('#blogsContainer').empty(); $('#blogsContainer').replaceWith(page);所以成功了,我用新數(shù)據(jù)清除了 blogsContainer。我猜我需要在替換后添加一個(gè)函數(shù),然后應(yīng)用外部 main.js 文件中的所有內(nèi)容。main.js 文件如下所示(function($) { var contentWayPoint = function() { var i = 0; $('.ftco-animate').waypoint( function( direction ) { if( direction === 'down' && !$(this.element).hasClass('ftco-animated') ) { i++; $(this.element).addClass('item-animate'); setTimeout(function(){ $('body .ftco-animate.item-animate').each(function(k){ var el = $(this); setTimeout( function () { var effect = el.data('animate-effect'); if ( effect === 'fadeIn') { el.addClass('fadeIn ftco-animated'); } else if ( effect === 'fadeInLeft') { el.addClass('fadeInLeft ftco-animated'); } else if ( effect === 'fadeInRight') { el.addClass('fadeInRight ftco-animated'); } else { el.addClass('fadeInUp ftco-animated'); } el.removeClass('item-animate'); }, k * 50, 'easeInOutExpo' ); }); }, 100); } } , { offset: '95%' } ); }; contentWayPoint();}使用 ajax 部分重新加載后,如何應(yīng)用缺少的 css?我希望這很清楚我想要做什么,但如果沒(méi)有,請(qǐng)?jiān)儐?wèn)。
1 回答

慕尼黑的夜晚無(wú)繁華
TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超6個(gè)贊
我認(rèn)為解決方案可能是在成功回調(diào)結(jié)束時(shí)重新執(zhí)行 contentWayPoint() 函數(shù)。然而,到那時(shí)它可能已經(jīng)超出了范圍。有兩種簡(jiǎn)單的方法可以確保它不會(huì):
最干凈的方法是確保設(shè)置分頁(yè)的代碼位于 main.js 中的同一 (function($) {}) 塊內(nèi) - 這樣它將“捕獲”該函數(shù)。
另一種更骯臟的方法是將 var contentWaypoint= function... 更改為 window.contentWaypoint = function - 然后在需要調(diào)用它時(shí)使用 window.contentWaypoint() 。有很多更好的方法可以做到這一點(diǎn),但這可能會(huì)讓您繼續(xù)前進(jìn)。
添加回答
舉報(bào)
0/150
提交
取消