2010-06-23 14 views
6

पर अपेक्षित काम नहीं करता है एफएफ में यह सभी divs को छुपाता है और फिर उस आईडी को दिखाता है जिसे '#rule_rule_type' मेनू से चुना गया था, जो अपेक्षित व्यवहार है। आईई 8 में यह सब div id के छिपाने नहीं करता है:jQuery छुपाएं() आईई 8

<script type="text/javascript" charset="utf-8"> 
    (function($){ 
    $('#rule_rule_type').change(function() { 
     $('#allowed_senders, #blocked_senders, #blocked_character_set, #custom').hide(); 
     var id = $(this).val(); 
     $('#' + id).show(); 
    }); 
    })(jQuery); 
</script> 

हालांकि, इस आईई 8 में काम करता है:

<script type="text/javascript" charset="utf-8"> 
    (function($){ 
    $('#rule_rule_type').change(function() { 
     $('#allowed_senders').hide(); 
     $('#blocked_senders').hide(); 
     $('#blocked_character_set').hide(); 
     $('#custom').hide(); 
     var id = $(this).val(); 
     $('#' + id).show(); 
    }); 
    })(jQuery); 
</script> 

यह गंदा है। मैं इसे और अधिक संक्षेप में कैसे साफ कर सकता हूं और अभी भी आईई 8 में काम कर सकता हूं?

धन्यवाद,
चिप कैसल
http://invoicethat.com

+1

वर्क्स ठीक: http://jsfiddle.net/bYzcv/ – user113716

+2

क्या doctype आप अपने HTML पृष्ठ में उपयोग कर रहे हैं? यह भी सुनिश्चित करें कि आपके पृष्ठ में एक ही 'आईडी' वाले दो तत्व नहीं हैं। – Behrang

+3

jQuery का कौन सा संस्करण? मैंने देखा है कि यहां तक ​​कि jQuery 1.3.2 में IE8 के साथ अजीब quirks है जो 1.4.x लाइन में कहीं तय किया गया था। – Powerlord

उत्तर

0

मैं अपने HTML नहीं देखा है, लेकिन जिस तरह से आप नामित और ऊपर अपनी आईडी संदर्भित किया है पता चलता है कि आप एक ही आईडी एक बार से अधिक का उपयोग करते हुए हो सकता है। केवल अनुमान है।

+0

आईडी निश्चित रूप से मेरे लिए अद्वितीय लगती हैं। उसके कोड के बारे में अन्यथा क्या सुझाव है? – user113716

0

क्या आपने अपना HTML दस्तावेज़ सत्यापित करने का प्रयास किया है? पता नहीं है कि यह काम करता है, लेकिन एक और तरीका ...

0

क्या होता है यदि आप सभी डीआईवी को दिखा रहे हैं जो आप दिखा रहे हैं और छुपा रहे हैं, और फिर इस थोड़ा रेफ्रज्ड कोड का उपयोग करें? इस उदाहरण में, आप उन divs करने के लिए एक वर्ग के रूप में "classofalldivs" जोड़ते हैं वह आप को प्रभावित करना चाहते हैं:

(function($){ 
    $('#rule_rule_type').change(function() { 
     var id = $(this).val(); 
     $('#' + id).show(); 
     $('.classofalldivs:not(' + '#' + id+ ')').hide(); 
    }); 
    })(jQuery); 

यह सब कुछ लेकिन div आप दिखा रहे हैं छिपाने के लिए "नहीं" छद्म चयनकर्ता का उपयोग करता है, और आईई और एफएफ दोनों में काम करने का मौका खड़ा है।

ऐसा कहकर, मैं अन्य सुझावों से सहमत हूं कि आपका मूल कोड गलत दिखता प्रतीत नहीं होता है, इसलिए अन्य अजीब चीजें चल रही हैं। क्या आप अपनी समस्या का एक पूर्ण और पूर्ण उदाहरण पोस्ट कर सकते हैं ताकि अन्य इसे पुन: उत्पन्न कर सकें?

1

मैं आपके नमूना को IE8 और क्रोम में ठीक कर रहा हूं। क्या यह किसी तरह से अलग है? मेरे लिए

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <title>jQuery Sandbox</title> 
</head> 
<body> 

    <select id='rule_rule_type'> 
     <option value="allowed_senders">allowed_senders</option> 
     <option value="blocked_senders">blocked_senders</option> 
     <option value="blocked_character_set">blocked_character_set</option> 
     <option value="custom">custom</option> 
    </select> 

    <hr /> 

    <div id="allowed_senders">#allowed_senders</div> 
    <div id="blocked_senders">#blocked_senders</div> 
    <div id="blocked_character_set">#blocked_character_set</div> 
    <div id="custom">#custom</div> 

    <script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.min.js"></script> 
    <script type="text/javascript"> 

     $(function() { 

      $('#rule_rule_type').change(function() { 

       $('#allowed_senders, #blocked_senders, #blocked_character_set, #custom').hide(); 

       var id = $(this).val(); 
       $('#' + id).show(); 

      }); 

     }); 

    </script> 
</body> 
</html>