سؤال

لدي رمز JQuery التالي الذي يعمل عند النقر فوق خيار في المربع تحديد:

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

يأخذ هذا الرمز حقول الإدخال الثلاثة #name, #account و #kid, ، تعطيلها وتغيير لون الخلفية ثم يتلاشى لون الخلفية إلى اللون الأبيض. أنا أستخدم البرنامج المساعد Color JQuery الذي يسمح لي بتلاشي الألوان.

المشكلة هي أنه عند تحميل الموقع حديثا، وأنا أغير الخيار المحدد في SELECT، فإنه يعطل جميع الحقول الثلاثة، وتغيير لون الخلفية، ولكن العنصر الأول #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 كونه مربع الاختيار.

هل كانت مفيدة؟

المحلول

كلا WFM مع طلب AJAX / JSON

http://jsbin.com/egani. -> مع jquery ui

http://jsbin.com/ekura/ -> مع المساعد Color Jquery Color القديم (2 سنة +)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top