1

我有一个页面,它在一个名为 TINY 框的模式弹出框内加载动态内容。仅当单击相应链接时才会生成内容。然后我有一个名为的变量var innerhtml = "<div id ='"+d.name+"'>,它在模态框中生成 div。

其中 d.name 是一个根据我的数据动态生成值的变量。这个 div 位于主模式框 div 内,每当用户打开链接并关闭框时,都会生成并销毁该 div。

事实上,即使是盒子也是即时生成的: var innerhtml2 = "<div id ='box'>

但是当盒子打开时,我希望盒子自动滚动到特定的 div(基于我上面提到的 id)。

我尝试了 ScrollTop、ScrollTo 和 Scrollintoview - 但我没有任何运气,因为模态框是动态创建和销毁的,而且我已经阅读过这些功能只有在页面完全加载后才能工作。是否可以编写一个程序,可以自动将动态生成的模态框滚动到其中动态生成的div?

那么我该怎么做呢?你需要代码片段吗?

提前致谢!

考希克

4

2 回答 2

0

假设我对您的理解是正确的,您可以在打开创建的框的函数中以及将 div 添加到 DOM 之后使用以下 jquery 代码:

$('html, body').animate({
     scrollTop: $("#"+d.name).offset().top
}, 1000);

这将滚动到 id 存储在变量 d.name 中的元素的顶部,

于 2013-06-03T12:22:13.677 回答
0

模态框加载有时间延迟,因此当最终生成 DOM 元素时,滚动代码已经执行,因此程序无法识别 DOM 元素使用 Jquery 的 triggerHandler 和更长的滚动时间延迟,我的问题去解决!另外,我认为这些错误是已知的 Heisenbugs -为什么当萤火虫说它是 34 时,jquery 会为 offsetHeight 返回 0?

于 2013-06-06T10:45:15.500 回答