2009-07-30 9 views
5
$(this).css("left","100px"); 

function endless(){ 
    $(this).animate({ 
     left:'-=100px', 
    },{ 
     easing: "linear", 
    duration: 5000, 
    complete: function() { 
     $(this).css('left','100px'); 
    endless(); 
     } 
    }); 
}; 
endless(); 

यह मैंने कोशिश की है, लेकिन इस दृष्टिकोण का उपयोग करके मैं सामान को स्थानांतरित नहीं कर सकता। आईएम 'jQuery 1.3.2 का उपयोग कर। कोई सुझाव?मैं हमेशा के लिए jQuery में .animate फ़ंक्शन कैसे चला सकता हूं?

उत्तर

3

आपके पास गलत को एनिमेट करने के लिए पैरामीटर हैं। इसमें विकल्प हैश नहीं है, बस आसान, अवधि और कॉलबैक के लिए वास्तविक विकल्प। इसके अलावा, this का उपयोग करते समय आपको देखभाल करने की आवश्यकता है। अंतहीन कार्य के लिए एक तर्क के रूप में इसे पारित करने के लिए बेहतर है।

$(this).css("left","100px"); 

function endless(elem){ 
    $(elem).animate(
     { left:'-=100px' }, 
     "linear", 
     5000, 
     function() { 
      $(elem).css('left','100px'); 
      endless(elem); 
     } 
    ); 
}; 
endless(this); 
2

आपको कॉलबैक के भीतर से अंतहीन() को कॉल करने की आवश्यकता होगी।

function endless(item) { 
    $(item).animate({"left": "-=100px"}, 5000, "linear", function(){ 
    $(item).css("left","100px"); 
    endless(item); 
    }); 
} 

endless($(".myBox")); 
0

आप तत्व है कि आप चेतन करना चाहते हैं चयनकर्ता के साथ $(this) को बदलने के लिए की जरूरत है।

0

बढ़िया! यह वही है जो मैंने खोजा था, लेकिन अब,

मुझे अंततः यह पता लगाया गया कि इसे कैसे टॉगल करें। निम्न फ़ंक्शन के साथ, एनीमेशन लूप को सक्षम करने के लिए अंतहीन (0) को रोकने के लिए, और अंतहीन (1) पर कॉल करें।

//loop animation forever 
//args: takes 1 to loop, 0 to stop 
function endless(loop) 
{ 
    //animate forever 
    if (loop==1) 
    { 
$('#alink').animate(
    {'opacity':'toggle'}, 
    1000, 
    function() { endless(1) } 
); 
    } 
    //stop animation 
    else 
    { 
$('#alink').css('opacity',1).stop(); 
    } 

}; 


//sample call 
$('#alink').toggle(function(){ endless(1) },function(){ endless(0) }); 

प्रारंभिक कोड के लिए thanx!

संबंधित मुद्दे