2012-05-18 153 views
0

我有一個PHP腳本,它在一些輸入的表單上運行驗證。我想隱藏()錯誤,然後讓它們淡入(而不是僅僅讓它們出現),一旦頁面重新加載。jQuery hide()閃爍

我遇到的問題是,雖然腳本工作正常......當頁面加載時,我得到了一些輕微的錯誤字段閃爍。

<div class="error">sample error</div> 

$(document).ready(function() 
{ 
    if($('div.error').length > 0) 

    { 

     $('div.error').hide(); 

     if($('div.error:hidden')) 
     { 
      $('div.error').delay('1000').fadeIn('2000'); 
     } 

    } 
} 

在此先感謝

+0

。由於您隱藏了div,因此無需檢查它是否隱藏,如果div可見,fadeIn()將不會執行任何操作。使用內置jQuery函數時,對元素exsitence的檢查也不需要,儘管它很好。 –

回答

1

加載頁面之前是隱藏的錯誤框?

看你的代碼,它也將存在,當文檔準備好,然後由JavaScript隱藏,然後褪色。

我reccomend你一個類添加到您的錯誤域稱爲hidden並在此聲明您stylesheed爲.hidden{ display:none;}

然後適應你的JS是這樣的:

大部分的代碼是不是真的需要
$(document).ready(function() 
{ 
    if($('div.error').length > 0) 

    { 

     $('div.error').hide().removeClass('hidden'); 

     if($('div.error:hidden')) 
     { 
      $('div.error').delay('1000').fadeIn('2000'); 
     } 

    } 
} 
+0

這個解決方案僅僅依賴於javascript嗎? 我不想直接在沒有javascript的人的樣式表中隱藏字段。 – Adam

+0

是的,但它可能是唯一的方法來擺脫你的閃爍 –

+0

對於錯誤,我認爲沒有JS的更好的行爲將顯示頁面加載時的錯誤,並可能在一段時間後淡出 –