亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

jQuery - 不可見時獲取元素寬度(顯示:無)

jQuery - 不可見時獲取元素寬度(顯示:無)

明月笑刀無情 2019-08-02 14:29:14
jQuery - 不可見時獲取元素寬度(顯示:無)似乎在jQuery中,當元素不可見時,width()返回0.有道理,但我需要獲取表的寬度,以便在顯示父級之前設置父級的寬度。如下所述,父母中有文本,使父母傾斜并且看起來很討厭。我希望父級只有表格的寬度并且包含文本。<div id="parent">     Text here ... Can get very long and skew the parent    <table> ... </table>     Text here too ... which is why I want to shrink the parent based on the table</div>CSS:#parent{     display: none;}使用Javascript:var tableWidth = $('#parent').children('table').outerWidth();if (tableWidth > $('#parent').width()){     $('#parent').width(tableWidth);}tableWidth總是返回0,因為它不可見(我猜是因為它在可見時給了我一個數字)。有沒有辦法獲得表格的寬度而不使父母可見?
查看完整描述

3 回答

?
湖上湖

TA貢獻2003條經驗 獲得超2個贊

function realWidth(obj){
    var clone = obj.clone();
    clone.css("visibility","hidden");
    $('body').append(clone);
    var width = clone.outerWidth();
    clone.remove();
    return width;}realWidth($("#parent").find("table:first"));


查看完整回答
反對 回復 2019-08-02
?
阿晨1998

TA貢獻2037條經驗 獲得超6個贊

根據羅伯茨的回答,這是我的功能。如果元素或其父元素已經通過jQuery淡出,這對我有用,可以獲得內部或外部維度,也可以返回偏移值。

/ edit1:重寫了這個函數。它現在變小了,可以直接在對象上調用

/ edit2:該函數現在將在原始元素而不是正文之后插入克隆,從而使克隆可以維護繼承的維度。

$.fn.getRealDimensions = function (outer) {
    var $this = $(this);
    if ($this.length == 0) {
        return false;
    }
    var $clone = $this.clone()
        .show()
        .css('visibility','hidden')
        .insertAfter($this);        
    var result = {
        width:      (outer) ? $clone.outerWidth() : $clone.innerWidth(), 
        height:     (outer) ? $clone.outerHeight() : $clone.innerHeight(), 
        offsetTop:  $clone.offset().top, 
        offsetLeft: $clone.offset().left    };
    $clone.remove();
    return result;}var dimensions = $('.hidden').getRealDimensions();


查看完整回答
反對 回復 2019-08-02
  • 3 回答
  • 0 關注
  • 831 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號