2011-06-28 5 views
7

मैं किसी तालिका में td तत्व पर क्लिक करने में सक्षम होना चाहता हूं और इसे एक ही पंक्ति में एक भाई td में चेकबॉक्स को चेक या अनचेक कर सकता हूं।jQuery td चेकबॉक्स सेट करने के लिए क्लिक करें, कोई बबलिंग

  • चेकबॉक्स पर क्लिक करना अभी भी सामान्य रूप से काम करना चाहिए।
  • टीडी तत्व पर क्लिक करने से चेकबॉक्स में रहता है चेकबॉक्स को भी देखना चाहिए।
  • क्लिक करने से अलग टीडी के पर दो बार क्लिक नहीं किया जा सकेगा एक बुरा टॉगल कार्यान्वयन की वजह से (क्लिक करें रीसेट)

फिडल: http://jsfiddle.net/cJ2us/

कृपया ध्यान दें, हाँ यह बहुत ही कई सवाल के समान है , कृपया किसी भी डुप्लिकेट को तब तक लिंक न करें जब तक कि आप वास्तव में मेरी समस्या को समझ नहीं पाते हैं और यहां दिए गए उत्तरों को मेरे प्रश्न के अनुरूप कैसे नहीं किया जाता है। जैसे

Jquery event on wrapped input radio override 'checked' event नहीं चेक बॉक्स

jQuery onclick div checks a checkbox टॉगल प्रत्येक चेक बाहर ले जाने और अनचेक करने के लिए अलग टीडी के पर क्लिक अनुमति नहीं है

Find the Checkbox in Sibling <td> and check it using jQuery इस उदाहरण से मेल नहीं खाती, कोड वास्तव में कैसे उत्तर देने से काम नहीं करता सोचता है

यह कहकर कि, यदि आपको एक डुप्ली मिलती है जो मुझे बताती है! मैं सिर्फ एक व्यावहारिक समाधान चाहता हूँ।

+0

जेएस समाधान – Neal

+0

http://jsfiddle.net/U3636/ के साथ अद्यतन देखें मेरा समाधान – Louis

उत्तर

11

यह काम करता है, यह तुम क्या चाहते है:

<label for='cheboxID'>LABEL</label> 

यहाँ एक js समाधान है?

$("td").click(function(e) { 
    var chk = $(this).closest("tr").find("input:checkbox").get(0); 
    if(e.target != chk) 
    { 
     chk.checked = !chk.checked; 
    } 
}); 

demo here

+0

IE8 में काम करता है, ff5 में चेकबॉक्स को उचित रूप से तोड़ देता है। क्या आप ($ .browser.msie) के साथ बढ़ सकते हैं? – Louis

+0

ठीक है, अब यह काम करना चाहिए, e.srcElement e.target में बदला जाना चाहिए। –

+0

वह है! – Louis

1

लेबल का उपयोग करें। http://jsfiddle.net/maniator/eWh5F/

$("td").click(function(e) { 
    var checkbox = $(':checkbox', $(this).parent()).get(0); 
    var checked = checkbox.checked; 
    if (checked == false) checkbox.checked = true; 
    else checkbox.checked = false; 
}); 
+0

यह कोशिश की गई है, फिलर स्पेस को बहुत अच्छी तरह से अनुमति नहीं देता है। शायद उन्हें अवरुद्ध कर सकते हैं और उन्हें पूरे टीडी भर सकते हैं, लेकिन मैं एक jquery समाधान माफ करना चाहता हूँ। – Louis

+0

@NotHelpful - मैंने एक jQuery समाधान – Neal

+0

चेकबॉक्स के साथ एफएफ मुद्दों को पोस्ट किया - हर कोई वहां अटक गया लगता है:} – Louis

1
$("td").click(function(e) { 

    var $checkbox = $("input[type='checkbox']"); 
     $checkbox.attr('checked', !$checkbox.attr('checked')); 



}); 

http://jsfiddle.net/cJ2us/12/

+0

'इनपुट: चेकबॉक्स' छोटा है – ThiefMaster

+0

चेकबॉक्स पर क्लिक करके यह जांच नहीं है! –

+0

अब यह करता है .... – Rafay

1

http://jsfiddle.net/U3636/

क्षमा दोस्तों, सहायता के लिए धन्यवाद, लेकिन मैं इस जो मेरी जरूरतों सूट के साथ आया था।

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