javascript - 如何触发附加到我的页面的内联 Javascript? (ASP.NET 网络表单)

标签 javascript jquery html css asp.net

我有一个由服务器生成的页面部分,其中包括由服务器编写的内联 javascript(这是 ASP.NET webforms)。此 javascript 用于将 onchange 事件绑定(bind)到我的下拉列表中,该下拉列表位于 $(document).ready().
当我的页面部分在页面加载时打开时, $(document).ready() 触发并且下拉列表被正确绑定(bind)。但是,当该部分未在页面加载时打开(即我必须单击“展开”按钮,它会联系服务器以构建和加载页面部分),内联脚本不会触发。
基本上,区别在于在一种情况下,<script>标记在加载的初始 html 中,在另一种情况下,<script>标签在页面加载后附加到初始 html。

这是内联脚本:

<script type="text/javascript">
    alert('hi inline!');
    $j(document).ready( function(){ 
        var $emailNameHidden = $j('#hidden_TargetedEmailName');
        $emailNameHidden.on('change', function(){
            van.TargetedEmails.loadTestCaseNameSelect($emailNameHidden.val());
        });
     });
</script>

我添加了警报以查看是否可以通过将其放在 $(document).ready() 之外来触发它,但警报也仅在初始页面加载中包含脚本时才会触发。

如何在将内联脚本添加到页面后触发它?

旁注:我尝试将这些东西放在页面部分包含的外部 JS 文件中,但是当我尝试在外部文件中绑定(bind)我的下拉列表时,绑定(bind)在下拉列表完成加载之前触发,因此它没有绑定(bind),当我将绑定(bind)放入 $(document).ready() 时,$(document).ready() 没有触发。

最佳答案

只需将您的客户端逻辑移动到 pageLoad 事件即可。

每次在浏览器中加载页面时,即每次回发(ajax 或非 ajax)之后以及初始加载时,ASP.Net 框架都会自动触发此 JavaScript 事件。当您在 ASP.Net 中进行 ajax 回发时,jquery 的文档就绪事件不会触发,但即使在进行 ajax 回发时,pageLoad 事件也会触发。

function pageLoad() {
//put the document.ready logic here

}

关于javascript - 如何触发附加到我的页面的内联 Javascript? (ASP.NET 网络表单),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34953798/

相关文章:

javascript - 观看 .html 文件时 BrowserSync 不会触发

javascript - 需要帮助从数组中为国家/地区着色,保留其余默认颜色

javascript - 如何在 Pinterest、Twitter 和 Facebook Javascript 文件中启用 gzip 压缩并利用浏览器缓存。

javascript - JQuery Scrollable Missing position onload 和 on api seek 在 webkit 浏览器中

ios - OpenSSL 服务器未收到来自 WKWebView 的媒体(音频/视频)请求

javascript - 当我在 php 代码中回显该函数时,javascript 函数不会执行

javascript - 如何从生成的 JSON 数组中提取 JSON 对象?

javascript - Odin 元素使用多个事件处理程序 eclipse 刻草图问题

html - 取消悬停时过渡不会缓和

html - 调整窗口大小时保持横幅图像居中?