2011-07-19 135 views
0

我做了一個功能,以中心對齊形成一個提交按鈕:jQuery的元素寬度

function btnCentrage(element, parent){ 
    var widthForm = $(parent).innerWidth(); 
    var widthBtn = $(element).outerWidth(); 
    var placement = (widthForm - widthBtn)/2; 
    console.log(element + '/' + parent + '/' + widthForm + '/' + widthBtn + '/' + placement); 
    $(element).css('margin', '0 '+ placement + 'px'); 
} 
    btnCentrage('#connectForm .btn_small', '.connect_bottom'); 

當我調用此函數(DOM加載後),它沒有任何元素的寬度或父寬度。

+0

確保家長和元素本身是可見的。 – ShankarSangoli

+0

爲什麼不只是使用CSS? 'margin:0 auto;' –

+0

你也可以發佈你的HTML請 – kasdega

回答

0

最明顯的原因是,它沒有找到元素或父級。嘗試將$(parent).length$(element).length添加到您的console.log調試轉儲中,以查看它是否確實在查找您的DOM節點。

+0

- 是在DOM元素加載和存在$(父母)。長= $(元素)。長= 1 – David

1

在JQuery中,您只需使用width()

正如所解釋的here,你可以這樣做:

var widthBtn = $(element).width(); 
+0

- 我試過寬度,它不會改變任何東西 – David

0

您的代碼似乎工作,所以答案是,元素是沒有選擇正確(如Ianus說的)或你的元素並不爲可見尚卡爾說。

而且也指出你可以很容易地使用CSS來做到這一點。

您的代碼:http://jsfiddle.net/kasdega/QbvxA/

一個可能的CSS版本:http://jsfiddle.net/kasdega/QbvxA/1/

+0

這是一個浮動按鈕可擴展,所以我不能使用CSS居中方法。 – David

+1

如果你可以包含一些HTML,我們可以給你更好的建議。 – kasdega