首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RegisterStartupScript不触发JScript方法

RegisterStartupScript不触发JScript方法
EN

Stack Overflow用户
提问于 2015-02-05 00:03:42
回答 1查看 431关注 0票数 0

我似乎不知道如何从代码背后触发javascript函数。

这是我在aspx页面上的javascript ..。

代码语言:javascript
复制
<script type="text/javascript">
...
function HidePopup() {
  $(function() {
    $("#popup").dialog("close");
  });
});

我有一个名为ShowPopup的类似函数,它是为LinkButton的OnClientClick事件触发的。这很管用。但是,在通过按此按钮启动的函数的末尾,我想隐藏JQuery对话框。我试过以下方法..。

代码语言:javascript
复制
ScriptManager.RegisterStartupScript(Me, Me.GetType, "HidePopup", "HidePopup();", True)

代码语言:javascript
复制
Page.ClientScript.RegisterStartupScript(Me.GetType(), "HidePopup", "HidePopup();")

我假设我需要第一个(我正在使用AjaxControlToolkit,这个特定的按钮和<div>在一个更新面板中),但这两个对话框似乎都没有隐藏。我没有错误,所以我在这里迷路了。有什么想法吗?需要更多信息吗?提前谢谢。

编辑:所以我的问题并不是javascript没有启动,我在我的alert(message)函数中添加了一个正在运行的HidePopup()函数,所以我的问题似乎就是这一行。

代码语言:javascript
复制
$("#popup").dialog("close");

我的div定义为..。

代码语言:javascript
复制
<div id="popup" style="display:none;"></div>

有人觉得这有什么不对吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-05 21:21:48

多亏了你们,我弄明白了这个问题。以防其他人在这里绊倒..。

由于我使用的是UpdatePanel,所以我必须使用ScriptManager.RegisterStartupScript(<UpdatePanelID>, <UpdatePanelID>.GetType(), "HidePopup", "HidePopup();") --记下@VeselinVasilev在函数调用中使用UpdatePanel名称的答案。

不过,最重要的是,我不得不修改实际启动弹出窗口的方法。DOM似乎失去了对对话框的引用。我创建了一个全局变量,并在创建它时将其分配给Dialog。然后,我可以使用它来显示/隐藏对话框。

代码语言:javascript
复制
var popupDialog;

function ShowPopup(message) {
    $("#popup").html(message);
    popupDialog = $("#popup").dialog({
                    title: "Working",
                    modal: true,
                    dialogClass: "no-close"
    });
};
function HidePopup() {
    popupDialog.dialog("close");
};

如果有人发现这方面的问题或有问题,一定要告诉我。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28333919

复制
相关文章

相似问题

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