outerWidth(true) 连续返回两次不同的值,而无需重新加载页面
outerWidth(true) returns different values two times in a row, without reloading the page
我很困惑。
http://jsfiddle.net/pyn8s/
单击登录按钮。等待弹出窗口出现。注意它的位置。再次单击"登录"按钮。看着它向左移动。(正确位置)再次单击"登录"按钮。请注意,它不再移动。
我很茫然,甚至不知道如何描述这种奇怪的行为。我注意到 note.outerWidth(true) 上的警报表明,它在前两次登录单击时报告了不同的宽度,但该对象永远不会不可见,并且在调用 outerWidth 之前应该设置它的宽度......
当 jQuery 第一次计算 note.outerWidth() 时,它会得到它的父宽度(loginForm = 250px),因为 notes 的宽度没有在 css 中定义(只定义了最大宽度)。
浏览器在 .append() 之后呈现新的注释内容,但其新宽度是在 .offset() 之后计算的:
请参阅控制台日志:http://jsfiddle.net/HighKickX/QSsV6/
max-width + 2 * (padding + border-width)
= 300px + 2 * (5px + 1px) = 312px
当您再次单击时,偏移量将根据 312px 而不是 250px 计算。这就是为什么笔记会移动到另一个位置。
解决方案1:删除"位置:绝对"http://jsfiddle.net/HighKickX/wjeGF/
解释:如果您设置了位置:绝对,则注释将从流程中删除,并且不再从loginForm继承250px的宽度。因此,它的宽度不限于 250px,而是最大宽度为 300px + 填充 + 边框 = 312px。如果您不设置位置:绝对,则注释的宽度将被继承并等于 250px(始终)。
解决方案2:设置默认宽度 http://jsfiddle.net/HighKickX/Ex3Bp/
- 创建新数据和加载现有数据需要单独的视图吗
- 钛 - HTTPClient:打开新的控制器加载
- 保持 JavaScript 在浏览器控制台中运行,即使在新的页面加载之后也是如此
- 路由到新页面时加载不起作用
- 如何在新窗口完成加载后执行某些内容
- 使用新标题重新加载 html 页面
- Primefaces在打开新页面时加载数据消息
- Wordpress音频播放器和平滑状态.在新页面重新加载播放器时调用什么回调函数
- 用新数据重新加载renderer3d
- 文本不被渲染后,新的页面加载- JQuery移动
- 需要在新标签中加载pdf/doc文件,而不是下载,只是想在浏览器中阅读
- 用新参数重新加载页面
- Js和CSS不检测新页面何时加载
- 在新页面上加载一个flash视频,它在上一页上的位置
- 在新窗口中加载代码编写器视图
- 在控制台中使用新脚本重新加载页面
- 如何在加载新页面后加载AJAX数据
- 如何使用jQuery在新窗口中加载页面,然后关闭它们
- Jquery没有看到新的HTML加载到对话框中
- 无法用新值重新加载JGrid