2009-11-04 21 views
1

我有,當我點擊一個選擇框的選項運行下面的jQuery代碼:jQuery的動畫不會一個元素上運行

$('#name, #account, #kid') 
    .attr('disabled', 'disabled') 
    .css('background-color', '#ffffcc') 
    .animate({ backgroundColor:'#ffffff' }, 1000); 

這個代碼利用三個輸入字段#name#account#kid,禁用它們,更改背景顏色,然後將背景顏色淡化爲白色。我使用jQuery Color插件,它允許我淡入淡出顏色。

問題是,當一個網站剛剛加載,並且我正在更改選擇的選定選項時,它會禁用所有三個字段,更改背景色,但第一個元素#name不會褪色背景色變白。只有以下兩個。

但是,如果我嘗試再次更改選擇框選項,它每次都能完美地工作!所以問題只發生在頁面重新加載後的第一次。其他人以前也經歷過這種情況嗎?

這裏是jQuery的,在它的整體:

$('#receiver').change(function(){ 

    var selected = $(this).children('option:selected').val(); 

    if (selected == 'new') 
    { 
     $('#name, #account, #kid').val('').attr('disabled', ''); 
    } 
    else 
    { 
     $.getJSON("<?php echo site_url('ajax/get_receivers') ?>", 
     function(data){ 
      $.each(data, function(i, data){ 
       if (data.id == selected) 
       { 
        $('#name').val(data.name); 
        $('#account').val(data.account); 
        $('#kid').val(data.kid); 

        $('#name, #account, #kid') 
         .attr('disabled', 'disabled') 
         .css('background-color', '#ffffcc') 
         .animate({ backgroundColor:'#ffffff' }, 1000); 
       } 
      }); 
     }); 
    } 

}); 

#receiver是選擇框。

+1

後整個代碼 – jmav 2009-11-04 12:02:12

+1

擴大了我的WFM答案 – jitter 2009-11-04 12:40:56

回答

1

與AJAX/JSON請求都WFM

http://jsbin.com/egani - >與jQuery UI

http://jsbin.com/ekura/ - >與舊的jQuery插件的顏色(2年+)

+0

我實際上設法得到了與你一樣的錯誤:http://cld.ly/8baxb – 2009-11-04 13:15:23

+0

這可能是平臺/瀏覽器特定的。在WinXP SP3 Opera 10.01,IE6,FF 3.5.4上的WFM。你用什麼? – jitter 2009-11-04 13:24:18

+0

我在Safari 4.0.3/Mac上。我已經使用Firefox 3.5.3/Mac進行了測試,其中第三個字段實際上掛了一次,第二個字段用Mac的Google Chrome 4.0.223.11(開發預覽版)掛了一次。 尚未在Windows上測試。 – 2009-11-04 14:30:50