"घूर्णन" फैशन में कुछ तत्वों को कैसे हाइलाइट करें?

यहां मेरी समस्या है: जब उपयोगकर्ता "मान्य" बटन पर क्लिक करता है, तो मैं एक AJAX अनुरोध भेजता हूं जो "समस्याग्रस्त" तत्वों की एक सरणी देता है। उस सरणी से, मैं उन तत्वों की आईडी की गणना करता हूं जिन्हें मैं हाइलाइट करना चाहता हूं, फिर मैं उन्हें "फ्लैश" करता हूं।

यह अच्छा है, यह काम करता है, लेकिन वे सभी एक साथ फ्लैश

मैं उन्हें एक दूसरे के बाद फ्लैश करना चाहता हूं, ताकि यह लंबा हो और अच्छा लगे (= आक्रामक नहीं)। मैंने queue() फ़ंक्शन का उपयोग करने का प्रयास करने में कुछ समय बिताया है (मुझे लगता है कि यह जाने का तरीका है) लेकिन इसे काम करने के लिए प्रबंधित नहीं किया।

कोई आईडिया कि इसे कैसे किया जाए?

/* this is the function to retrieve bg color (= not the actual subject) */
jQuery.fn.getBg = function() {
    return $(this).parents().filter(function() {
        var color = $(this).css('background-color');
        return color != 'transparent' && color != 'rgba(0, 0, 0, 0)';
    }).eq(0).css('background-color');
};

/* this is my flash function (= not the actual subject) */
function flash(id, font_color, bg_color, nb) {
    var bc=$(id).getBg();
    var cl=$(id).css('color');
    var mx=parseInt(nb);
    if (mx<=0) {
        mx=1;
    }
    for (var i=0; i
0
जोड़ा संपादित
विचारों: 2

3 उत्तर

यहां कामकाजी समाधान है:

dataMessage = new Array("#erreur-nomprenom", "#erreur-adresse1", "#erreur-cp", "#erreur-ville", "#erreur-tel");
var theQueue = $({});
for (key in dataMessage) {
    var m = dataMessage[key];
    if (m.indexOf('#erreur') == 0) {
        var toFlash = (function(m) {
            return function(next) {
                $(m).fadeIn('slow', function() {
                    flash('#label-' + this.id.substr(7), "#ffffff", "#aa0000", 3);
                    next();
                });
            }
        })(m);
        theQueue.queue('flash', toFlash);
    }
}
theQueue.dequeue('flash');
0
जोड़ा
var theQueue = $({});

$('div').each(function(index, div) {
    theQueue.queue('flash', function(next) {    
        $(div).animate({
            backgroundColor: 'red'
        }, 500, function() {
            next();
        });    
    });
});

theQueue.dequeue('flash');

Live example - http://jsfiddle.net/z7xRe/

स्टैक ओवरफ़्लो पर एक और सवाल है जो इस उपयोग के मामले में अधिक विस्तार से चलता है - क्या jQuery में कतार हैं? । @ Gnarf की प्रतिक्रिया देखें।

0
जोड़ा
वास्तव में बहुत बहुत धन्यवाद, लेकिन, आपके नमूने पर भरोसा करते हुए मैंने इसे काम करने की कोशिश की है, लेकिन ऐसा नहीं है, यहां देखें: jsfiddle.net/k8yKP/1
जोड़ा लेखक Olivier Pons, स्रोत
ठीक है, अब मुझे अंतिम समस्या का सामना करना पड़ रहा है: जब तत्व सरणी में होते हैं। jsfiddle.net/k8yKP/2 => क्षमा करें, जब जावास्क्रिप्ट की बात आती है तो मैं नहीं हूं शेड में सबसे तेज उपकरण ..
जोड़ा लेखक Olivier Pons, स्रोत
Console.log() के साथ मेरी सामग्री यहां दी गई है, मुझे नहीं पता कि इसे कैसे काम करना है: jsfiddle.net/k8yKP/3
जोड़ा लेखक Olivier Pons, स्रोत
मैंने कामकाजी समाधान जोड़ा है, मुझे सही रास्ते पर रखने के लिए धन्यवाद!
जोड़ा लेखक Olivier Pons, स्रोत
रंगीन एनिमेशन करने के लिए आपको jQuery UI को भी शामिल करने की आवश्यकता है ( jqueryui.com/demos/animate देखें )। मैंने आपके जेएसफ़ाइल पर jQuery UI लाने के लिए चेकबॉक्स पर क्लिक किया और यह अपेक्षित काम करता है - jsfiddle.net/78zar
जोड़ा लेखक TJ VanToll, स्रोत

आपको अपने फ़्लैश फ़ंक्शन से एनीमेशन कतार वापस करने की आवश्यकता होगी। फिर, अपने फॉर-लूप में सभी चमकों को एक साथ शुरू करने के बजाय (बीटीडब्ल्यू: फॉर-इन-लूप एरे के लिए उपयुक्त नहीं हैं), आपको उन्हें उस कतार पर फिर से धक्का देना होगा। आपने .queue() के साथ क्या प्रयास किया है?

0
जोड़ा