2012-01-06 19 views
7

मैं एक वेब अनुप्रयोग बना रहा हूं क्लिक करें ...Jquery देरी के बाद

मैं खेल का एक प्रकार है, मेरा विचार यह ठीक है जब उपयोगकर्ता प्रत्येक स्तर में कुछ जानकारी के साथ एक संवाद बॉक्स प्रकट होता पूरा करता है।

अब मेरा मुद्दा यह है कि उपयोगकर्ता खत्म बटन पर क्लिक करने के 5 सेकंड बाद यह संदेश दिखाना चाहता हूं।

$('#option-main-menu').click(function(){ 
     target.append('\ 
      <div id="confirm">\ 
       <h1>Are You Sure Want to Exist?</h1>\ 
       <a href="#" id="dialog-confirm">Yes</a><a href="#" id="dialog-cancel">No</a>\ 
      </div>\ 
     '); 
    }); 

भी मैं append().Delay(10000) साथ tryed लेकिन काम नहीं करता:

मेरी कोड thats।

अग्रिम धन्यवाद।

+14

मुझे संदेश पसंद है, "क्या आप निश्चित रूप से अस्तित्व में रहना चाहते हैं?" –

+0

@ टिम, यह डॉ केवोर्कियन गेम है। :) –

+0

लॉल खराब वर्तनी! –

उत्तर

18

5000 एमएस की देरी के साथ setTimeout() का उपयोग करें।

$("button").click(
 
    function() { 
 
     console.log("clicked...waiting..."); 
 

 
     setTimeout(
 
      function() { 
 
       alert("Called after delay."); 
 
      }, 
 
      5000); 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<button type="button">Click Me</button>

बस जिज्ञासा से बाहर

, तुम क्यों एक कार्रवाई के जवाब में उपयोगकर्ता को संकेत से पहले 5 सेकंड इंतजार करना चाहेगा? लंबा समय हो गया है; उनके लिए लंबे समय तक अन्य चीजों के समूह पर क्लिक करना पर्याप्त है (अगर कुछ और नहीं)।

+1

खैर समय शायद कम हो जाएगा ... –

11

आप setTimeout() का उपयोग करने का प्रयास कर सकते हैं।

Example

setTimeout(function(){ 
    // do stuff here, in your case, append text 
}, 5000); 

5000 कि मिलीसेकेंड में देरी की लंबाई निर्धारित करता है समय के किसी भी मूल्य के साथ बदला जा सकता है।

+1

गलत। 'देरी()' केवल उस एनीमेशन कतार को प्रभावित करती है। – SLaks

+0

@ स्लक्स: अच्छा बिंदु - मुझे इसका एहसास नहीं हुआ। मैंने अपना जवाब संपादित कर लिया है और एक उदाहरण जोड़ा है। – Purag

0
$yourThing.click(function(){ 
    setTimeout(function(){do your thing here},5000) 
}) 
+0

आप एक समारोह में उत्तीर्ण होना सिर्फ एक उदाहरण है, यह फोन नहीं: yourFunction, बजाय yourFunction की() –

+0

@pascalbetz हाँ, कि मेरी ओर से बुरा स्यूडोकोड था। फिक्स्ड। धन्यवाद! –

1

आप एक परिशिष्ट में देरी नहीं कर सकते हैं। आप केवल एनिमेशन में देरी कर सकते हैं। आप setTimeout इस्तेमाल कर सकते हैं या दिखाने के तत्व शुरू में छिपा हुआ और उसके बाद में यह नहीं हो पाती:

$('<div id="confirm" style="display:none"> ...') 
    .appendTo(target) 
    .delay(5000) 
    .fadeIn(1000); 
1

कोशिश:

$('#option-main-menu').click(function(){ 
    setTimeout(
     function(){ 
     target.append('\ 
      <div id="confirm">\ 
       <h1>Are You Sure Want to Exist?</h1>\ 
       <a href="#" id="dialog-confirm">Yes</a><a href="#" id="dialog-cancel">No</a>\ 
      </div>\ 
     '); 
     } 
     , 5000); 
    }); 
0

$("button").click(
 
    function() { 
 
     console.log("clicked...waiting..."); 
 

 
     setTimeout(
 
      function() { 
 
       alert("Called after delay."); 
 
      }, 
 
      5000); 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<button type="button">Click Me</button>

+2

कृपया कोड को उत्तर के रूप में न केवल डंप करें। इसे समझाएं ताकि यह भविष्य के आगंतुकों की सहायता करे। –

+1

यह "कोड केवल" उत्तर के लिए बहुत स्पष्ट है, लेकिन मैं @ स्टर्लिंग आर्चर से सहमत हूं; इसे कम से कम कुछ टिप्पणी की जरूरत है। –

0

यह काम करेंगे

$("button").click(
function() { 
    console.log("clicked...waiting..."); 

    setTimeout(
     function() { 
      alert("Called after delay."); 
     }, 
     5000); 
}); 
संबंधित मुद्दे