javascript - 服务器端调用未显示 Fancybox

标签 javascript c# jquery asp.net fancybox

我必须从服务器端显示 fancybox。我编写了一个javascript方法,并在asp.net按钮单击的ScriptManager.RegisterStartUpScript中调用了该方法

这是我的代码

 protected void btnSaveAndAddConcern_Click(object sender, EventArgs e)
    {
        ScriptManager.RegisterStartupScript(this, this.GetType(), "fancybox", "callFancyBox();", true);
    }

这是我的 JavaScript 函数

 function callFancyBox() {
            $("#fancybox").attr("href", "/Agent/AddCampConcernPopup.aspx").fancybox({
                  'width': 550,
                  'height': 200,
                  'type': 'iframe',
                  'title': ''
              }).trigger("click");
          }

函数已调用,但 fancybox 未打开。当我从客户端调用这个 JavaScript 函数时,它工作正常。但是当我从 fancybox 后面的代码调用它时永远不会显示。我检查控制台中的错误,并在从服务器端调用后显示此错误

"Uncaught TypeError: Cannot read property 'hide' of undefined"

我有 jquery 1.10.2 和 fancybox 版本 1.3.4

同样,当我从客户端调用它时,fancybox 工作得很好,但问题在于服务器端调用。

最佳答案

如果加上就更好了

ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "ajax", "callFancyBox()", true);

代替

ScriptManager.RegisterStartupScript(this, this.GetType(), "fancybox", "callFancyBox();", true);

还可以按类而不是 ID 添加,这样您就可以将一个函数传递给多个函数,如下所示

 $(document).ready(function () { //this line you have to add for initiate script so it will solve your undefined error
            $('.fancybox').fancybox({
                type: 'iframe'                   
            });
 }

关于javascript - 服务器端调用未显示 Fancybox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30722525/

相关文章:

javascript - 所有对象属性不为空的javascript

javascript - 如何使用js选择DOM中的特定元素而不是其父元素

c# - ASP.NET 身份验证 cookie

c# - Datagrid不更新WPF MVVM中的行

jquery - $wpdb->insert 在格式化后分割我的日期

javascript - 组合输入并选择输入/更改

javascript - 在一个按钮上绑定(bind)两个具有不同属性的单击事件不起作用

c# - 查找图像中的主色

javascript - 嵌套选项卡界面内有 700 个音频播放器。最佳选项卡代码类型(jquery/ajax/etc)

javascript - Vue.js 如何在 Mounted() 之前进行观察,无法从观察中获取数据