ASP.NET 页面生命周期和 JavaScript 事件
我有以下设置 -
在 page_load(...)
期间对于每个项目,我都会注册一个 jQuery window-onresize
事件,以根据其父控件的大小调整每个控件的大小。
问题 - window.resize
事件没有按照我希望的顺序发生,因为先发生的是 aspx 页面的 page_load()
,然后才是母版页。
由于内边距和边距的原因,在 CSS 中使用 height="100%"
是不可能的。 是否有处理这种情况的通用策略?我可以使用其他页面并控制生命周期事件,但是,这似乎有点老套。
我需要建议;我想过为每个控件分配一个优先级分数,并将它们注册到一些全局 JS 对象中,然后按该顺序运行它。还有更好的解决方案吗?
I have the following setup -
During the page_load(...)
of each item, I register a jQuery window-onresize
event to size each control depending on the size of its parent control.
The problem -- The window.resize
events don't occur in the order I want them to because page_load()
for the aspx page occurs, then the master pages.
Using height="100%"
in CSS is not possible because of padding and margins.
Are there general strategies for dealing with this situation? I could use other page and control lifecycle events however, that seems a bit hacky.
I need suggestions; I've thought of assigning each control a precedence score and registering them with some global JS object and then run it in that order. Are there any better solutions?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这里有一个想法(假设您可以使用 jQuery):
仅注册最里面子级的
onresize
。然后在onresize
中,调用$(this).parent().trigger('onresize');
这将确保它正确地在链上冒泡。
注意:如果你不使用jQuery,你仍然可以在javascript中实现这个事件冒泡。
Here's one idea (assuming you can use jQuery):
Register innermost child's
onresize
only. Then inside thatonresize
, call$(this).parent().trigger('onresize');
That will ensure it bubbles up the chain correctly.
Note: If you don't use jQuery, you can still implement this event bubbling in javascript.