मैं एक विशिष्ट समय के लिए एक बटन को अक्षम करना चाहता हूं। मैं उसे कैसे कर सकता हूँ?jquery एक विशिष्ट समय के लिए एक बटन अक्षम करें
उत्तर
बटन को अक्षम करें और फिर एक फ़ंक्शन चलाने के लिए setTimeout का उपयोग करें जो कुछ सेकंड के बाद बटन को सक्षम बनाता है।
$('#some-button').attr("disabled", "disabled");
setTimeout('enableButton()', 5000);
function enableButton(){
$('#some-button').removeAttr('disabled');
}
चूंकि यह एक काम आप को दोहराने के लिए पसंद कर सकते हैं होने की संभावना है, मुझे लगता है कि ऐसा करने का सबसे अच्छा तरीका की तरह jQuery का विस्तार करने के होगा:
$.fn.timedDisable = function(time) {
if (time == null) { time = 5000; }
return $(this).each(function() {
$(this).attr('disabled', 'disabled');
var disabledElem = $(this);
setTimeout(function() {
disabledElem.removeAttr('disabled');
}, time);
});
};
यह आपको फोन करने की अनुमति देगा मिलान किए गए तत्वों के एक सेट पर एक फ़ंक्शन जो उन्हें अस्थायी रूप से अक्षम कर देगा। जैसा कि लिखा गया है, आप बस फ़ंक्शन को कॉल कर सकते हैं, और चयनित तत्व 5 सेकंड के लिए अक्षम हो जाएंगे।
$('#some-button').timedDisable();
आप निम्न पंक्ति में 5000
परिवर्तित करके डिफ़ॉल्ट समय सेटिंग को समायोजित कर सकते हैं::
if (time == null) { time = 5000; }
आप वैकल्पिक रूप से एक समय मूल्य में मिलीसेकेंड कैसे नियंत्रित करने के लिए पारित कर सकते हैं आप कि इतने की तरह करना होगा लंबे समय तक तत्वों को अक्षम कर दिया जाएगा। उदाहरण के लिए:
$('#some-button').timedDisable(1000);
यहाँ एक काम डेमो है: http://jsfiddle.net/fG2ES/
सबसे सुरुचिपूर्ण समाधान नहीं हो सकता है, लेकिन मुझे लगता है मैं इस पर jQuery कतारों के साथ खेलते था सोचा ...
$.fn.disableFor = function (time) {
var el = this, qname = 'disqueue';
el.queue(qname, function() {
el.attr('disabled', 'disabled');
setTimeout(function() {
el.dequeue(qname);
}, time || 3000);
})
.queue(qname, function() {
el.removeAttr('disabled');
})
.dequeue(qname);
};
$('#btn').click(function() {
$(this).disableFor(2000);
});
यह वह जगह है जहां मैं इसे बाहर काम किया ... http://jsfiddle.net/T9QJM/
और, संदर्भ के लिए, How do I chain or queue custom functions using JQuery?
इसे आजमाएं। http://jsfiddle.net/RPQmM/ मेरा मानना है कि setTimeout गलत कहा जाता है:
(function(){
$('button').on('click',function(){
var $this=$(this);
$this
.attr('disabled','disabled');
setTimeout(function() {
$this.removeAttr('disabled');
}, 3000);
});
})();
आपके पास चालू उदाहरण यहाँ http://jsfiddle.net/informativejavascript/AMqb5/
- 1. Jquery एक विशिष्ट तत्व के लिए उन्हें निष्क्रिय अक्षम करें
- 2. एक विशिष्ट क्लिक करें JQuery
- 3. एक HTML बटन को अक्षम करने के लिए Jquery
- 4. jQuery ही अगर एक विशिष्ट रेडियो बटन
- 5. jQuery यूआई डेटपिकर - विशिष्ट दिन अक्षम करें
- 6. JQuery प्रमाणीकरण - केवल एक फ़ील्ड के लिए ऑनफोकसआउट अक्षम करें
- 7. jQuery एक विशिष्ट
- 8. एक विशिष्ट समय (ओं)
- 9. jQuery - एक विशिष्ट वर्ग
- 10. एक विशिष्ट वर्ग jQuery
- 11. एक jQuery बटन
- 12. jQuery के साथ एक विशिष्ट "सत्यापन समूह" के भीतर एएसपीनेट सत्यापनकर्ता नियंत्रण सक्षम/अक्षम करें?
- 13. अपलोड करते समय पृष्ठ पर सभी बटन कैसे अक्षम करें?
- 14. एक क्लिक के बाद एक सबमिट बटन को अक्षम करने
- 15. एक विशिष्ट फ़ंक्शन को अनइंड करें jQuery
- 16. jQuery मैं n बटन एक सीएसएस वर्ग
- 17. CUDA केवल एक चर के लिए L1 कैश अक्षम करें
- 18. एंड्रॉइड - एक अक्षम बटन को सुनें
- 19. Jquery लोड, एक विशिष्ट वर्ग
- 20. एक समय में चयनित एक रेडियो बटन
- 21. एक jquery date कैसे करें पिकर बटन छवि unclickable
- 22. अक्षम विशिष्ट दिन
- 23. एक WPF बटन अक्षम करें, लेकिन अभी भी क्लिक ईवेंट
- 24. jQuery मोबाइल जब एक बटन
- 25. jQuery मोबाइल में लिंक बटन को अक्षम कैसे करें?
- 26. विशिष्ट नियंत्रणों पर थीम अक्षम करें?
- 27. होवर पर jquery विशिष्ट शो बटन
- 28. jQuery निष्क्रिय करने के लिए बटन
- 29. jQuery - एक तत्व को छिपाने के लिए जिसमें विशिष्ट वर्ग
- 30. किसी विशिष्ट विधि/कक्षा के लिए जावा जेआईटी अक्षम करें?
यह काम नहीं करता पा सकते हैं। – Ender
@Ender यह काम नहीं करता है क्योंकि आपका 'सक्षम बटन' फ़ंक्शन वैश्विक दायरे में नहीं है जिसे * way * 'setTimeout' द्वारा आवश्यक है। इसे देखें: http://jsfiddle.net/RPQmM/1/ –