2012-01-16 17 views
5

क्लिक मैं मेरी समस्या की रूपरेखा तैयार करने के लिए एक त्वरित बेला बना दिया है विशेषता।jQuery डेटा घटना

क्या कोई यह बता सकता है कि यह वर्तमान में ऐसा क्यों नहीं कर रहा है?

जे एस

$(document).ready(function() { 

    $('.categoryItems').click(function() { 
     $('.itemLinks').hide(); 
     var target_category = $(this).attr('data-target_category'); 
     $('.itemLinks [data-category=' + target_category + ']').show(); 
    }); 
}); 

एचटीएमएल

<div id="categories"> 
    <div data-target_category="html-site-templates" class="categoryItems">HTML Site Templates</div> 
    <div data-target_category="jquery-plugins" class="categoryItems">jQuery Plugins</div> 
    <div data-target_category="tumblr-themes" class="categoryItems">Tumblr Themes</div> 
    <div data-target_category="wordpress-themes" class="categoryItems">WordPress Themes</div>  
</div> 

<div id="content"> 
    <a class="itemLinks" data-category="tumblr-themes" href="/tumblr-themes/mini-tumblr-theme/">Mini Tumblr Theme</a> 
    <a class="itemLinks" data-category="jquery-plugins" href="/jquery-plugins/randomr-jquery-plugin/">Randomr jQuery Plugin</a> 
    <a class="itemLinks" data-category="wordpress-themes" href="/wordpress-themes/redux-wp-theme/">Redux WP Theme</a> 
</div> 
+3

हमेशा प्रश्न में प्रासंगिक कोड/मार्कअप * शामिल करें *। क्यों: http://meta.stackexchange.com/questions/118392/add-stack-overfow-faq-entry-or-similar-for-putting-code-in-the-question –

उत्तर

11

यह ...

$('.itemLinks [data-category=' + target_category + ']').show(); 

इस होना चाहिए ...

$('.itemLinks[data-category="' + target_category + '"]').show(); 

अंतरिक्ष एक वंशज चयनकर्ता रूप में व्याख्या की है, लेकिन data-category, itemLinks तत्व पर सीधे है वंश पर नहीं।

मैंने विशेषता चयनकर्ता के मूल्य के चारों ओर उद्धरण भी जोड़े। एपीआई के लिए इसकी आवश्यकता है।

डेमो:http://jsfiddle.net/mYdxw/11/

11

बस कोड पर सुधार करने के लिए, jQuery attr का उपयोग करने का तो बजाय डेटासेट के मूल्य को पुनः प्राप्त करने .data() प्रदान करता है() डेटा()

var target_category = $(this).data('target_category'); 
का उपयोग

डेमो: http://jsfiddle.net/mYdxw/28/

+0

क्या यह किसी भी तरीके से बेहतर है? – benhowdle89

+0

उपरोक्त कोड एचटीएमएल 5 अनुपालन और डेवलपर्स के लिए जीवन को आसान बनाने के लिए jQuery प्रयास है। Http://tutorialzine.com/2010/11/jquery-data-method/ – Abhi

+0

@ benhowdle89: यह सब करता है jQuery की डेटा विशेषता आयात करता है '.डेटा() 'सिस्टम। यदि आप जो कुछ करने जा रहे हैं वह डेटा पढ़ता है, तो यह वास्तव में कोई फर्क नहीं पड़ता है। चूंकि आप पहले से ही 'डेटा-' विशेषताओं का उपयोग कर रहे हैं, आप पहले से ही HTML5 अनुपालन कर रहे हैं। jQuery वास्तव में डेटा पढ़ने के लिए HTML5 'डेटासेट 'प्रॉपर्टी का उपयोग नहीं करता है। लेकिन पर्याप्त ब्राउज़र इसका समर्थन करने के बाद, आप डेटा पुनर्प्राप्त करने के लिए 'this.dataset.target_category' करने में सक्षम होंगे। –

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