javascript - 从后面的代码触发 javascript;按钮触发 js 代码,RegisterStartupScript 不会

标签 javascript jquery asp.net code-behind

我有一个带有触发弹出窗口(单击时)的 div 的 asp.net 应用程序。如果我的代码隐藏代码中发生某些事情,我需要弹出窗口。

我想我可以将一个 javascript 代码块发送到我的页面以点击 div,但我似乎无法让它工作。这是弹出插件的 jQuery:

$(function () {
   $('.c_popup').modalPopLite(
                { openButton: '#div_trigger', 
                  closeButton: '#close-btn' 
                });
});

一个简单的 div 触发它(通过点击 div):

<div id="div_trigger">Trigger</div>

我可以通过页面上的按钮从 javascript 单击 div:

<input type="button" id="btn_show_error" value="Popup"
       onclick="document.getElementById('div_trigger').click();" />

行得通。但是,当我尝试从我的代码后面将该 javascript block 准确地发送到页面时,如下所示:

ClientScript.RegisterStartupScript(Page.GetType(), "error_click", 
       "<script>document.getElementById('div_trigger').click();</script>")

没有任何反应。我通过更改为一个简单的警告框来测试我的代码:

ClientScript.RegisterStartupScript(Page.GetType(), "error_click",
     "<script>alert('Hello World');</script>")

而且效果很好。所以我可以看到 javascript 从我后面的代码到达页面,当它来自页面本身上的按钮时,相同的 javascript block 执行我想要的操作,但它不起作用来自后面的代码。

如有任何想法,我们将不胜感激。我真的卡住了。

编辑:两个张贴者回应说我在弹出控件绑定(bind)之前发布我的 javascript。我不确定如何解决这个问题,即使我得到了帮助。我尝试在我的页眉 block 中创建此函数:

function TriggerDiv() {
    $(document).ready(function () {
        alert('success');     //alert just to check if the function is firing
        document.getElementById('div_trigger').click();
    });
}

然后像这样从我的代码后面调用它:

ClientScript.RegisterStartupScript(Page.GetType(), "error_click", 
    "<script>TriggerDiv();</script>")

警报触发,但点击事件没有 - 我在想我仍然没有按正确的顺序做事。任何进一步的帮助将不胜感激。

最佳答案

该元素在 javascript 执行时可能不存在,或者至少您对 modalPopLite 的调用尚未执行。将您的代码包装在 $(document).ready 中。

编辑:该元素在执行时应该存在。 RegisterStartupScript 将脚本添加到 body 的底部。但是,modalPopLite 调用尚未执行,因此点击处理程序尚未附加。 $(document).ready 应该仍然可以解决这个问题。

关于javascript - 从后面的代码触发 javascript;按钮触发 js 代码,RegisterStartupScript 不会,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18903954/

相关文章:

javascript - 使用 javascript 注入(inject) html 的最佳方法

javascript - 如何创建一个独立的 HTML block ?

jquery - 从 jQuery 1.7.1 迁移到 jQuery 1.9.2

asp.net - 如何实现 ASP.NET 购物车?

javascript - 在 jquery mobile 中执行页面加载功能

javascript - Angular Web 组件 - @Input 未收到值

php - 无法获取值(value)

javascript - scrolltop with if less than 不起作用

asp.net - Paypal 核心 Dotnet SDK

javascript - 如何在不使用 javascript 在 asp.net 中重新加载页面的情况下刷新 APPLET?