【问题标题】:Jquery/JS hidden elements dimention/position - with accordion and AJAX :(Jquery/JS 隐藏元素维度/位置 - 使用手风琴和 AJAX :(
【发布时间】:2010-08-30 11:50:06
【问题描述】:

HTML

<div id='accordion'>
     <h5>Header 1</h5>
     <ul>
        <li>section 1 content visible</li>
        <li>
             <div id=showhide>
                   <textarea id=usertext>
                   user entered text here,scalable
                   </textarea>
             </div>
        </li>
     </ul>
     <h5>Header 2</h5>
     <ul>
        <li>section 2 content 1</li>
        <li>section 2 content X</li>
     </ul>

</div>

#showhide 可以是可见的或隐藏的(以节省空间) 无论手风琴的哪个部分展开以及#showhide是可见还是折叠,如何获取#usertext的尺寸?

jquery 的.width() 不返回隐藏元素的值。我可能会设置display:block,但页面上有很多元素,我在async JS 帖子中发送尺寸,我无法协调显示元素和获取其尺寸的时间。我不想去sync,因为页面会冻结很长时间。

有什么建议吗?

【问题讨论】:

    标签: jquery accordion hidden dimensions


    【解决方案1】:

    也许这个插件可以帮助你:http://plugins.jquery.com/project/evenIfHidden

    【讨论】:

    • 这看起来很有希望!但它的工作方式 $('#box').evenIfHidden( function(element) { alert( element.width() ); });你如何返回一个值?
    • 这取决于你想用这个值做什么。例如,如果要将其存储在变量中,请替换 alert( element.width() );用 varname = element.width().
    • 我对 java 有点陌生,所以如果我想做类似 `var dim=$('#box').evenIfHidden(function (element) {return {w:element.宽度(), h:element.height(), t:element.top()}});'因为现在我在昏暗中得到 $('#box') 对象......
    • 那是javascript,不是java。我不认为 element.top() 在 jquery 中有效,你必须使用 element.position()。然后你会写类似 $('#box').evenIfHidden( function(element) { position = element.position(); dim = {w:element.width(), h:element.height(), t:位置.top}; });这会将您想要的值放入 dim 变量中(我认为您还必须在此之前声明 dim )。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-29
    • 1970-01-01
    • 1970-01-01
    • 2021-10-11
    • 1970-01-01
    相关资源
    最近更新 更多