2012-06-25 17 views
5

के साथ प्रतिस्थापित करें मुझे अपने स्क्रिप्टबॉक्स को छिपाने के लिए इस स्क्रिप्ट की आवश्यकता है और इसके स्थान पर एक स्टाइल चेकबॉक्स की एक छवि डालें। यह ठीक से छुपा रहा है और डिफ़ॉल्ट छवि दिखा रहा है, लेकिन जब मैं उस पर क्लिक करता हूं तो चेकबॉक्स को चेक या अनचेक नहीं किया जाएगा, न ही यह छवि को अपडेट करेगा। मुझे लगता है कि यह एक साधारण बात है जिसे मैं देख रहा हूं, मैं अभी भी jQuery के लिए नया हूं।jQuery - स्टाइल चेकबॉक्स, छवि

यहाँ स्क्रिप्ट है:

<input type="checkbox" class="check" /> 

संपादित करें::

 $(".check").each(function() { 
      $(this).hide(); 

      var $image = $("<img src='assets/images/layout/checkbox/unchecked.png' />").insertAfter(this);  

      $image.click(function() { 
       var $checkbox = $(this).prev(".check"); 
       $checkbox.prop('checked', !$checkbox.prop('checked')); 

       if($checkbox.prop("checked")) { 
        $image.attr("src", "assets/images/layout/checkbox/checked.png"); 
       } else { 
        $image.attr("src", "assets/images/layout/checkbox/unchecked.png"); 
       } 
      }) 
     }); 

यहाँ HTML है इसके अलावा, यह आम तौर पर स्टाइल चेक बॉक्स को सबसे अच्छा तरीका है? मुझे ऐसा कुछ भी नहीं लगता है जो इससे कहीं अधिक आसान है, इसलिए किसी भी सुझाव की सराहना की जाती है।

+0

यह ठीक काम करना चाहिए: http://jsfiddle.net/SaEYH/। – VisioN

+1

बीटीडब्ल्यू: '$ ('चेक')' == '$ ('इनपुट [प्रकार = चेकबॉक्स]') ', इसलिए jQuery के लिए कक्षाएं सेट करने की आवश्यकता नहीं है। – feeela

+0

मैंने पृष्ठ पर अन्य सभी jQuery स्क्रिप्ट को हटा दिया है और यह अभी भी काम नहीं कर रहा है, क्या कोई विचार है कि मैं गलत क्या कर सकता हूं? – ohiock

उत्तर

2

यह पता चला कि मैं jQuery के दिनांकित संस्करण का उपयोग कर रहा था, जो समस्या थी। मैंने 1.7.2 तक अपडेट किया और सबकुछ काम करता था जैसा कि इसे करना चाहिए।

+0

आपके उदाहरण में स्रोत में कोई बदलाव नहीं? संस्करण जो काम किया? – CrackerJack9

+0

स्रोत कोड यहां जैसा दिखता है काम करता है। संस्करण जो काम करता था 1.7.2 था, लेकिन मुझे नहीं पता कि इससे पहले क्या था। – ohiock

0

आप भी इस jQuery प्लगइन Zebra_Transform कहा जाता है जो एक पृष्ठ पर सभी चेक बॉक्स, रेडियो बटन का चयन करें और बक्से को बदल देती है इस्तेमाल कर सकते हैं, यह बहुत बहुत छोटे (3KB) है, और सभी प्रमुख ब्राउज़रों में काम करता है।

0

मैंने कई समाधानों की कोशिश की और सबसे अच्छा विकल्प लगता है: http://ryanfait.com/resources/custom-checkboxes-and-radio-buttons/ यह आसान है और अच्छी तरह से काम करता है।

+0

अफसोस की बात है कि रयान फेट का निधन हो गया है और यह पृष्ठ अब मान्य नहीं है। – DeveloperChris

0

पता है कि यह एक पुराना धागा है - लेकिन चेकबॉक्स को छवियों में परिवर्तित करने के लिए एक समाधान की आवश्यकता है - और यह सबसे अच्छा जवाब था। :) तो कुछ इसे दोहराया और साझा करना चाहता था।

function setCheckboxImageSrc(checkbox, image, checkedUrl, uncheckedUrl) { 
    if (checkbox.is(":checked")) { 
     image.attr("src", checkedUrl); 
    } else { 
     image.attr("src", uncheckedUrl); 
    } 
} 

function setCheckboxImage(checkboxObj, className, checkedUrl, uncheckedUrl) { 
    checkboxObj.hide(); 

    var $image = $("<img src='" + checkedUrl + "' />").insertAfter(checkboxObj); 
    setCheckboxImageSrc(checkboxObj, $image, checkedUrl, uncheckedUrl); 

    $image.click(function() { 
     var $checkbox = $image.prev("." + className); 
     $checkbox.click(); 
     setCheckboxImageSrc($checkbox, $image, checkedUrl, uncheckedUrl); 
    }); 
} 

$(".checkboxUp").each(function() { 
    setCheckboxImage($(this), "checkboxUp", "../../../images/DirectionUpChecked.png", "../../../images/DirectionUpUnchecked.png"); 
}); 

$(".checkboxDown").each(function() { 
    setCheckboxImage($(this), "checkboxDown", "../../../images/DirectionDownChecked.png", "../../../images/DirectionDownUnchecked.png"); 
}); 
संबंधित मुद्दे