[英]Maintaining JavaScript Code in the <Head> after ASP.Net Postback.
正如標題所示,我在回發時維護代碼時遇到問題。 我在Head部分有一堆jQuery代碼,這個工作正常,直到發生回發,之后它停止運行!
我怎樣才能解決這個問題? 頭部沒有在回發上閱讀,有沒有辦法可以強迫這種情況發生?
JavaScript是:
<script type="text/javascript">
$(document).ready(function()
{
$('.tablesorter tbody tr').tablesorter();
$('.tablesearch tbody tr').quicksearch({
position: 'before',
attached: 'table.tablesearch',
stripeRowClass: ['odd', 'even'],
labelText: 'Search:',
delay: 100
});
});
</script>
如果您只是將代碼硬編碼到頁面的頭部,那么回發郵件不會影響它。 我會通過調試檢查以下內容(FireFox中的FireBug是一個很好的調試器):
編輯:您是否使用UpdatePanels回復郵件? 換句話說,這是異步回發還是普通的整頁刷新?
編輯編輯:啊......好吧。 因此,如果您正在使用UpdatePanels,那么文檔的就緒狀態已經准備就緒,因此不會再次觸發jquery代碼的一部分。 我會將jquery委托提取到一個單獨的函數,您也可以在異步回發后調用它。
把你的代碼放進去
function pageLoad(sender, args) {
/* code here */
}
代替$(document).ready(function() { ... });
pageLoad()
是一個將在所有回發,同步和異步之后執行的函數。 有關詳細信息,請參閱此答案
我猜測回發預先搶占了頁面的onLoad事件,jQuery需要掛鈎才能使用它的.ready()。
alert('test');
您應該將代碼放在名為pageLoad()的函數中,而不是使用$(document).ready。 按照慣例,只要頁面有回發/ asyncpostback,就會調用pageLoad()函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.