0

我试图让一小部分 jquery 在页面加载时设置选择元素的大小,然后根据新的自动大小设置它的容器的大小。这有时有效,但似乎因页面加载速度较慢而失败。如果我调试代码并在每一行暂停,它会 100% 地工作,所以我假设在下一行触发之前每个操作都没有完成。我尝试为每一行添加 setTimeout,这有一点帮助,但并非总是如此。有任何解决这个问题的方法吗?

$(document).ready(function() {

  //set select element to auto width
  setTimeout(function(){$("#PunchDD").width("auto");},5); 

  //Add some width to the element to account for custom drop down arrow
  setTimeout(function(){$("#PunchDD").width($("#PunchDD").width() + 17);},5);

  //Set container width a bit smaller to hide the stock drop down arrow
  setTimeout(function(){$("#PunchDDContainer").width($("#PunchDD").width() - 18);},5);
});

此外,我不想在 css 中将大小设置为自动,因为当 javascript 不工作时,我在那里使用固定大小进行故障回复。

4

1 回答 1

1

将您的事件设置为在窗口加载而不是文档就绪时工作:

$(window).on('load',function(){
    // fun shtuffs
});

这应该可以解决问题,因为窗口和 CSS 格式在任何操作发生之前已经加载。

于 2013-04-02T15:05:31.963 回答