2012-03-15 50 views
11

我有共同的功能,我在腳本文件夾CommonFunctions.js摺疊它。回發我的JavaScript功能後,在ASP.NET中不起作用

我將它包含在我的母版頁上並在我的頁面上使用它。當我在頁面上發佈任何回帖時,我的功能無效。

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("kodid"); 
     } 
     else 
      $(this).find('.AddNewGeneralPanelStyle').text(""); 

     $(this).next('.AddNewGeneralAccordionDiv').slideToggle('slow', function() { 

     }); 

    }); 
    } 
}); 
+1

你在做部分回發?我的意思是更新面板與條件回發? – PraveenVenu 2012-03-15 11:55:21

+2

只是爲了確認:這是你使用的代碼嗎?我看到對「gf」函數的調用,但聲明瞭「gF」函數。別忘了JS區分大小寫 – 2012-03-15 11:56:25

+0

是的,我使用更新panel.it與回發很好,當我使用這個javascript代碼使用

19

這是因爲updatepanel部分回發。這是你需要做的。

function pageLoad(sender, args) 
{ 
    $(document).ready(function(){ 

    // put all your javascript functions here 

    }); 
} 

我有同樣的問題,它爲我工作。我希望它也能幫助你。

+1

此代碼在同一頁面上工作,但我把它叫做masterpage.i試試它,但是不爲我工作 – Mennan 2012-03-15 12:06:11

+0

你在母版頁中有scriptmanager標籤嗎?如果沒有放在那裏,然後再試一次。 – PraveenLearnsEveryday 2012-03-15 12:25:11

+0

我解決了這個問題thx [回覆](http://stackoverflow.com/questions/256195/jquery-document-ready-and-updatepanels) – Mennan 2012-03-15 12:32:15

1

假設您正在使用UpdatePanel執行回發,並且JS代碼已經更新到更新面板中的HTML元素,您需要在加載更新面板時重新附加它們。你可幫了你對endRequest事件代碼:

Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequestHandler) 

http://msdn.microsoft.com/en-us/library/bb383810.aspx

請記住,如果你正在使用多個更新面板時,應檢查哪些更新面板被刷新,僅附加了事件否則你需要冒不止一次的事件。

7

這是因爲使用了updatepannel。以下代碼工作正常。只要把你的jquery代碼pageLoad事件中像下面

function pageLoad(sender, args) { 
    $(document).ready(function() {....} 
} 
+0

需要的一個功能。謝謝! +1 – Si8 2017-10-02 15:53:48

2

我有同樣的問題,我有這個代碼解決:

<script type="text/javascript"> 
    function pageLoad() 
    { 
     $('#datetimepicker2').datetimepicker();   
    } 
</script> 
0

面臨同樣的問題。更改

$(document).ready(function() { 

Sys.Application.add_load(function() { 

這將迫使它甚至在部分postbacck運行