2009-11-04 53 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