2012-09-14 95 views
0

以下是我的JavaScript中,我一直在試圖顯示某些股利,執行功能後,div應該隱藏自己,但我有這個問題,在相同的功能都不工作像先顯示一段時間後隱藏該div,但是當我將顯示和隱藏事件分開時,它工作正常。請讓我知道我可以修改下面的代碼,使處理後的結果應該隱藏該divjquery隱藏不被觸發

function jq(input) 
    { 


    if (input == 'abc') 
    { 
    $("#show").show(1000); 

     document.getElementById('sele').options.length = 0; 

    $('#sele').append('<option value="test">Testing</option>').updateSelect(); 

    $("#show").hide(1000); 

    } 
} 

<div id="show" > <img src="ajax-loader.gif" width="16" height="16" /> </div> 

回答

1
$("#show").show(1000, function() { 

    $('#sele').empty(); // instead of: document.getElementById('sele').options.length = 0; 

    $('#sele').append('<option value="test">Testing</option>').updateSelect(); 

    // make a delay using setTimeout() 
    setTimeout(function() { 

     $("#show").hide(1000); 

    }, 500); 

}); 

完整的代碼

function jq(input) { 
    if (input == 'abc') { 
     $("#show").show(1000, function() { 
      $('#sele').empty(); 
      $('#sele').append('<option value="test">Testing</option>').updateSelect(); 
      setTimeout(function() { 
       $("#show").hide(1000); 
      }, 500); 
     }); 
    } 
} 
+0

謝謝,但隱藏的問題仍然存在... 。 –

+0

@softgenic您是否嘗試過我的上次更新代碼?如果之後有任何問題,然後澄清......更好的是在http://jsfiddle.net小提琴 – thecodeparadox

0

我覺得你越來越下一行的錯誤(檢查控制檯):

document.getElementById('sele').options.length = 0; 

length是隻讀的,那不是清空select的方法。由於您使用jQuery,你可以做這樣的事情,而不是:

$('#sele').empty();