AjaxControlToolkit TabContainer 准备就绪时的 Javascript?

标签 javascript jquery ajaxcontroltoolkit tabcontainer

我有一个带有 TabContainer 控件的页面(来自 Ajax Control Toolkit),我根据当前选择的选项卡切换页面上某些元素的可见性。我一直在 OnClientActiveTabChanged 的事件处理程序中执行此操作(工作正常),但我发现它在回发后使页面处于错误状态。我尝试向 document.ready 事件处理程序添加一些代码来获取索引,但是当我执行以下操作时:

$(document).ready(function () {
    var index = $('#<%= TabContainer1.ClientID %>').[0].control.get_activeTabIndex();
    // Do some stuff with the index
});

...我在 .control 属性上得到一个空引用异常。有没有办法为 TabContainer Hook 客户端“就绪”事件?

我不熟悉普通 DOM 元素的事件生命周期(似乎应该有一个通用的 onload 事件,但我没有看到)。如果没有可以轻松处理的事件,似乎可以添加一个带有 UpdateMode=Conditional 的 UpdatePanel 和一个指向带有 onclick 事件处理程序的隐藏按钮的 AsyncPostBackTrigger获取事件选项卡索引 – 但对于我希望 DOM 已经公开的内容,这似乎有很多移动部分。

最佳答案

来不及提供帮助,但我遇到了同样的问题并找到了解决方法。 更改您的代码

$(document).ready(function () {
    var index = $('#<%= TabContainer1.ClientID %>').[0].control.get_activeTabIndex();
    // Do some stuff with the index
});

function pageLoad() {
    var index = $('#<%= TabContainer1.ClientID %>').[0].control.get_activeTabIndex();
    // Do some stuff with the index
};

此处说明: http://encosia.com/document-ready-and-pageload-are-not-the-same/

基本上,jQuery 的就绪事件“有点早”并且 TabContainer 尚未初始化,而客户端 ASP.Net 的 pageLoad 已经足够晚并且 TabContainer 已经初始化。

关于AjaxControlToolkit TabContainer 准备就绪时的 Javascript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6457822/

相关文章:

javascript - 来自鼠标的粒子 "run away"

javascript - 选择字符串中的特定字符并使用 Jquery(视觉上)对其进行偏移

php - Cakephp,在加载 View 时动态地将变量写入CSS文件?

c# - 使用 HTMLEditorExtender 的文本框在按 Enter 时不会插入新行

c# - 未知服务器标记 "ajaxToolkit:HtmlEditorExtender"

javascript - For 循环立即打印所有循环的 console.log() ,而循环的其余部分仍然运行?

javascript - 如何将一个 Canvas 元素从显示在另一个 Canvas 元素之上移除

javascript - 如何本地化 asp :TextBox's placeholder by reading App_LocalResources file (. resx)

asp.net - 在 Ajax Control Toolkit 的级联下拉列表更新中

javascript - twitter bootstrap carousel 直接链接到特定幻灯片