2011-06-22 20 views
13

मैं इस तरह 1.6.1 लिंक बटन jQuery के साथ एक jQuery मोबाइल बीटा 1 वेबसाइट है:jQuery मोबाइल में लिंक बटन को अक्षम कैसे करें?

<a id="subselection" href="#" data-role="button" data-theme="b">TEST</a> 

और document.ready में मैं क्लिक करें घटना सेट:

$('#subselection').livequery("click", function(){ 
    alert('test'); 
}); 

मैं इस निष्क्रिय करने के लिए whant "लिंक बटन" और मैं

$('#subselection').button('disable') 

की कोशिश की और वह आदेश बटन शैली सेट की तरह वह अक्षम है लेकिन क्लिक करें घटना काम करता है।

मैं भी कोशिश की है

$('#subselection').prop('disabled', true); 

और $ ('# subselection') सहारा ('अक्षम')। सच देता है लेकिन यह अक्षम नहीं है।

किसी के पास एक अच्छा विचार है।

+0

आप अपने अन्य प्रश्न अद्यतन करना चाहिए http://stackoverflow.com/questions/6437187/jquery- मोबाइल-कैसे-टू-चेक-अगर-बटन-अक्षम है क्योंकि यह संबंधित है और लोग पहले से ही आपकी सहायता कर रहे हैं। – lancscoder

+0

आप अक्षम करने के लिए दो बटन एक सक्रिय कर सकते हैं और एक सक्रिय के लिए भी, आप जावास्क्रिप्ट का उपयोग कर ऑनक्लिक ईवेंट संलग्न और अलग कर सकते हैं। –

उत्तर

13

a तत्व में कोई संपत्ति disabled नहीं है। इसलिए किसी को परिभाषित करने से आप किसी भी ईवेंट हैंडलर को प्रभावित नहीं करेंगे।

उदाहरण: http://jsfiddle.net/niklasvh/n2eYS/

उपलब्ध विशेषताओं की सूची के लिए, HTML 5 reference पर एक नजर है।

अपनी समस्या को हल करने के लिए, आप के बजाय उदाहरण के लिए आवंटित कर सकते हैं disableddata के रूप में तत्व में:

$('#subselection').data('disabled',true);

और फिर अपने घटना की जांच में अगर इसके सेट:

if (!$(this).data('disabled'))

उदाहरण: http://jsfiddle.net/niklasvh/n2eYS/5/

+0

ऐसा लगता है कि यह मेरे काम पर अच्छा है, धन्यवाद, मेरी परियोजना पर कोशिश करें, धन्यवाद! – RickardP

+0

धन्यवाद, यह वास्तव में मेरी मदद की। क्योंकि मेरे पास '$ ('a') जैसे लिंक अक्षम करने के साथ कुछ अजीब समस्याएं थीं। (फ़ंक्शन (ई) {e.preventDefault();}) पर क्लिक करें; और फिर' $ ('a') के साथ फिर से सक्षम करें। क्लिक करें (फ़ंक्शन (ई) {// पुरानी चीजें फिर से करें}); '। पुरानी चीजें कुछ हैंडलर को फिर से लागू करने के बाद अनंत लूप में कैसे फंस गईं। – Dmytro

0

आप वैकल्पिक रूप से बटन टैग/विजेट सीधे <button>TEST</button> का उपयोग कर सकते हैं, जिसमें उचित अक्षमता है। यदि आप किसी ईवेंट को पकड़ने के लिए इसका उपयोग कर रहे हैं और कुछ जावास्क्रिप्ट चलाते हैं तो यह सुनिश्चित न करें कि लिंक का उपयोग करने में क्या फायदा होगा।

2

का उपयोग कर

$('#subselection').button().button('disable'); //disable in JQM 

$('#subselection').button().button('enable'); //enable in JQM 

यह एक अक्षम प्रदर्शित करने के लिए नेत्रहीन काम करने के लिए लगता है/शैली सक्षम ... लेकिन "बटन" अभी भी क्लिक करने योग्य है की कोशिश (ताकि से सतर्क रहें!: पी)

25

लिंक बटन उदाहरण:

जे एस

var clicked = false; 

$('#myButton').click(function() { 
    if(clicked === false) { 
     $(this).addClass('ui-disabled'); 
     clicked = true; 
     alert('Button is now disabled'); 
    } 
}); 

$('#enableButton').click(function() { 
    $('#myButton').removeClass('ui-disabled'); 
    clicked = false; 
}); 

एचटीएमएल

<div data-role="page" id="home"> 
    <div data-role="content"> 

     <a href="#" data-role="button" id="myButton">Click button</a> 
     <a href="#" data-role="button" id="enableButton">Enable button</a> 

    </div> 
</div> 

नोट: - http://jquerymobile.com/demos/1.0rc2/docs/buttons/buttons-types.html

लिंक बटन की तरह स्टाइल नीचे सच प्रपत्र-आधारित बटन के रूप में सभी एक ही दृश्य विकल्प हैं, लेकिन वहाँ कुछ महत्वपूर्ण अंतर है। लिंक-आधारित बटन बटन प्लगइन का हिस्सा नहीं हैं और केवल बटन अंतर्निहित बटन बनाने के लिए अंतर्निहित बटनमार्क प्लगइन का उपयोग करें ताकि फॉर्म बटन विधियां (सक्षम, अक्षम, रीफ्रेश) समर्थित न हों। यदि आपको लिंक-आधारित बटन (या कोई तत्व) अक्षम करने की आवश्यकता है, तो अक्षम वर्ग को लागू करने के लिए जावास्क्रिप्ट को उसी प्रभाव को प्राप्त करने के लिए स्वयं को अक्षम कर दिया गया है।

+2

यह विकल्प वास्तव में वर्तमान में स्वीकृत उत्तर (निकलास ') से वास्तव में बेहतर है, क्योंकि बटन वास्तव में ऐसा लगता है कि यह अक्षम है और jQuery मोबाइल स्वचालित रूप से' UI-disabled 'श्रेणी वाले बटनों से आने वाले क्लिकों को अनदेखा कर देगा। यह सिर्फ एक आश्चर्य करता है कि जेक्यूएम डेवेलर्स ने अतिरिक्त, स्पष्ट रूप से छोटे, अंतिम चरण क्यों नहीं लिया और लिंक-आधारित बटनों के लिए कुछ सक्षम/अक्षम विधियां उपलब्ध कराईं। –

+0

@Haroldo_OK धन्यवाद! मुझे लगता है कि जेक्यूएम 1.1.0 के साथ कुछ बेहतर प्रदान करता है http://jquerymobile.com/demos/1.1.0/docs/buttons/buttons-methods.html –

1

मुझे पता है कि पहले से ही इसका एक स्वीकार्य उत्तर है, लेकिन मुझे लगता है कि यह उत्तर समझना बहुत आसान है। बस क्लिक फ़ंक्शन झूठी वापसी करें।

<a id="subselection" href="#" data-role="button" data-theme="b">TEST</a> 

<script> 
$('#subselection').click(function() { 
    alert("do some code here"); 
    return false; 
}); 
</script> 
8

इस मामले में jquery/जावास्क्रिप्ट की आवश्यकता नहीं है। बस एक 'यूई-अक्षम' वर्ग जोड़ें।

उदाहरण के लिए की तरह:

<a class="ui-disabled" id="subselection" href="#" data-role="button" data-theme="b">TEST</a> 

Thats मैं क्या करते हैं, और यह मेरे लिए काम करता है;)

+0

आईई 11 – WhatsInAName

+0

में काम नहीं करता है तो मेरे लिए सबसे अच्छा विकल्प दूर, क्योंकि यह बटन स्टाइल के साथ-साथ ऑपरेशन को प्रभावित करता है। – xgretsch

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