2010-09-25 26 views
5
$("#clickMe").click(         
    function(){ 
      if (i == 1) {    
       i = i+1 
       $("#div p").css("left", "-" + width * i + "px"); 
      } 
}); 

जैसा कि आप देख सकते हैं - जब कोई बटन क्लिक करता है तो मार्जिन बदल जाता है। क्या होगा यदि मैं बस हर 10 सेकंड में साइट लोड पर ऐसा करना चाहता हूं?jQuery प्रत्येक एक्स सेकंड में ईवेंट कैसे करें?

धन्यवाद।

उत्तर

10

उपयोग setInterval एक समय घटना स्थापित करने के लिए:

setInterval(
    function(){ 
      if (i == 1) {    
       i = i+1 
       $("#div p").css("left", "-" + width * i + "px"); 
      } 
    }, 
    10000 /* 10000 ms = 10 sec */ 
); 
+3

एक चर के लिए 'setInterval() 'असाइन करें, ताकि आप इसे' clearInterval()' के साथ रोक सकें। ==> 'var timer = setInterval (...); ', फिर रोकने के लिए:' स्पष्ट अंतराल (टाइमर);' –

0
var cancel_margin_change = false; 
$(function() { 

    var i = 1, width = 10, xtime = 10000, 
     margin_change = function() { 

      if (i == 1) 
      $("#div p").css("left", "-" + (width * (++i)) + "px"); 

      if (!cancel_margin_change) 
      setTimeout(margin_change, xtime); 
     }; 

    margin_change(); 

}); 
संबंधित मुद्दे