這裏的挑戰在於,爲了通過javascript訪問DOM元素,DOM元素必須已經被瀏覽器解析,一旦它被瀏覽器解析,它可能已經在屏幕上顯示,除非它被設置爲不是可見。
這裏最好的答案是通過CSS樣式來控制初始外觀,因爲這將在解析項目時生效,並且它的第一個顯示將包含CSS樣式。
你可以運行一個給定對象的JavaScript的最快方法是立即把內嵌的JavaScript元素後的HTML源代碼:
<input id="htmlEdit" type="checkbox"/>
<script type="text/javascript>
$('#htmlEdit').wijcheckbox();
</script>
然而,這就會變得混亂很快,如果你不得不這樣做了很多並且散佈標記和JS通常不是一個好主意。因此,如果你不能用CSS來設計它,那麼你可能最好先將對象隱藏起來,然後在你的JS對其進行樣式化後才顯示它。
<input id="htmlEdit" type="checkbox" style="visibility: hidden" />
而且,然後讓它在你的JS看到你適當的風格之後:
$(document).ready(function() {
$('#htmlEdit').wijcheckbox().css("visibility", "visible");
})
注:我用visibility: hidden
在這裏,而不是display: none
因爲你的頁面將適當佈局和時複選框變得可見,頁面不會重新顯示導致事物跳動。這看起來比看到沒有複選框的佈局更好,然後在複選框變爲可見時看到它重新定位。如果新的複選框樣式顯着不同,則在添加新樣式時它可能會稍微移動一點,但在使用可見性時不會太顯着。
<input class="styledCheckbox" id="htmlEdit" type="checkbox">
CSS:
/* initially hidden until wij style is applied */
.styledCheckbox {visibility: hidden;}
的Javascript:
$(document).ready(function() {
// add style to all checkboxes and make them visible
$('.styledCheckbox').wijcheckbox().css("visibility", "visible");
})
感謝這麼
如果你有一大堆的這些,你可以把它與一個一流的自動化非常花時間給出一個很好的答案。 – 2012-04-06 16:40:41