我需要將文本居中在選擇列表中。沒有使用CSS的跨瀏覽器和設備方法,所以我使用JavaScript來設置文本縮進。在window.load上操縱DOM的jQuery代碼並不總是運行
代碼從選擇列表中獲取文本,將其添加到跨度(使用css使文本具有相同的大小),並測量跨度的寬度。有了這個值,需要一些簡單的數學來確定文本縮進所需要的。
$(window).load(function() {
function textIndentFunc() {
textString = $('#from-1 :selected').text();
$('#hidden').text(textString);
textWidth = $('#hidden').width();
inputWidth = $('#from-1 select').width();
indentMy = (inputWidth/2) - (textWidth/2);
$('#from-1').css('text-indent',indentMy);
}
$('#from-1 select').change(function() {
textIndentFunc();
});
textIndentFunc();
});
這其中大部分的代碼工作正常,但有時似乎並不做任何事情的時候,在這種情況下刷新頁面通常修復它。爲什麼這段代碼太過氣質了?這是否與操縱dom有關?
感謝
更改項目後,.change()事件會觸發嗎? –
是的,這似乎總是工作正常。 – Evans