0

我需要在选择列表中居中文本。没有仅使用 CSS 的跨浏览器和设备方法,所以我使用 JavaScript 设置文本缩进。

代码从选择列表中获取文本,将其添加到跨度(使用 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有关?

谢谢

4

1 回答 1

4

不要$(document).ready() _ $(window).load()

当调用$(document).ready()你的函数时,一旦 DOM 被处理并准备好被操作,load()当所有资产加载(图像,声音)时将回调。

于 2012-05-22T14:45:49.427 回答