首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >回发后,我的JavaScript函数在ASP.NET中不起作用

回发后,我的JavaScript函数在ASP.NET中不起作用
EN

Stack Overflow用户
提问于 2012-03-15 19:50:39
回答 7查看 48.5K关注 0票数 15

我有一些常用的函数,我把它折叠到CommonFunctions.js的脚本文件夹中。

我将它包含在我的母版页上,并在我的页面上使用它。当我在页面上返回任何帖子时,我的函数不起作用。

我的CommonFunctions.js

代码语言:javascript
运行
复制
$(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 () {

        });

    });
  }
});
EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2012-03-15 19:58:06

由于您使用的是UpdatePanel,因此DOM中附加了事件处理程序的部分将在回发后被删除并重新创建。这将删除首次加载页面时由jQuery附加的任何事件处理程序。

当您只回发页面的一部分时,jQuery $(function() {});不会再次触发,因此您的处理程序永远不会重新附加。

这是一个related question,它展示了如何在UpdatePanel刷新时重新订阅事件。

票数 13
EN

Stack Overflow用户

发布于 2012-03-15 20:01:59

这是因为updatepanel部分回发。这是你需要做的。

代码语言:javascript
运行
复制
function pageLoad(sender, args)
{
  $(document).ready(function(){   

   // put all your javascript functions here 

  });
}

我也有同样的问题,这对我很有效。我希望这对你也有帮助。

票数 28
EN

Stack Overflow用户

发布于 2015-04-01 01:10:57

这是因为使用了updatepannel。下面的代码运行良好。只需将jquery代码放在pageLoad事件中,如下所示

代码语言:javascript
运行
复制
function pageLoad(sender, args) {
     $(document).ready(function () {....}
}
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9719078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档