[英]After postback my JavaScript function doesn't work in ASP.NET
我有通用函數,我將它CommonFunctions.js
在 Scripts 文件夾中的CommonFunctions.js
上。
我將它包含在我的母版頁上並在我的頁面上使用它。 當我在頁面上回帖時,我的功能不起作用。
我的CommonFunctions.js
:
$(function () {
gf();
if (Sys.WebForms.PageRequestManager.getInstance().get_isInAsyncPostBack()) {
gf();
}
function gf(){
$('.AddNewGeneralPanel').click(function () {
if ($(this).find('.AddNewGeneralPanelStyle').text() == "") {
$(this).find('.AddNewGeneralPanelStyle').text("( Gizle )");
lastOpenId = $(this).attr("codeid");
}
else
$(this).find('.AddNewGeneralPanelStyle').text("");
$(this).next('.AddNewGeneralAccordionDiv').slideToggle('slow', function () {
});
});
}
});
這是因為更新面板部分回發。 這是您需要做的。
function pageLoad(sender, args)
{
$(document).ready(function(){
// put all your javascript functions here
});
}
我有同樣的問題,它對我有用。 我希望它也能幫助你。
由於您使用的是UpdatePanel
,您已將事件處理程序附加到的 DOM 部分將在回發后被刪除並重新創建。 這具有刪除頁面首次加載時由 jQuery 附加的任何事件處理程序的效果。
當您僅回發頁面的一部分時,jQuery $(function() {});
不會再次觸發,因此您的處理程序永遠不會重新連接。
這是一個相關問題,顯示了如何在UpdatePanel
刷新時重新訂閱您的事件。
這是因為使用了更新updatepannel
。 以下代碼工作正常。 只需將您的jquery
代碼放在pageLoad
事件中,如下所示
function pageLoad(sender, args) {
$(document).ready(function () {....}
}
我有同樣的問題,我已經用這個代碼解決了:
<script type="text/javascript">
function pageLoad()
{
$('#datetimepicker2').datetimepicker();
}
</script>
面臨同樣的問題。 改變
$(document).ready(function() {
到
Sys.Application.add_load(function() {
這將迫使它甚至在部分回發時運行
假設您使用 UpdatePanel 進行回發,並且 JS 代碼附加到更新面板中的 HTML 元素,您需要在加載更新面板時再次附加它們。 您可以在 endRequest 事件上連接您的代碼:
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequestHandler)
http://msdn.microsoft.com/en-us/library/bb383810.aspx
請記住,如果您使用多個更新面板,您應該檢查哪個更新面板被刷新並僅附加需要的事件,否則您可能會冒事件觸發多次的風險。
您可以將所有 JavaScript 代碼放在以下代碼之間。
函數 pageLoad(sender, args) {
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.