2012-03-17 15 views
20

मैं निम्नलिखित कोड है:JQuery दर्शनीय दिखाएँ

$('#loading').css("visibility", "visible"); 

$('#loading').show(); 

किसी कारण मेरे लिए अज्ञात है जब मैं सीएसएस यह काम करता है का उपयोग करें!

लेकिन जब मैं .show() का उपयोग करता हूं;

यह काम नहीं करता है। कृपया मदद करें। मैं JQuery के लिए एक नया हूँ।

धन्यवाद।

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

<div class="footerOrder" id="loading" style="visibility:visible;"> 
     <img src="../utils/loadingExistenz.gif" width="32" height="32" border="0" /> 
</div> 

इस कोशिश की:

<div class="footerOrder" id="loading" style="display:block;"> 

तब:

$('#loading').hide(); 

और फिर भी अगर किसी कारण से नहीं जाने!

संपादित करें: अजीब बात यह है कि यह अन्य सभी डीवी के लिए काम कर रहा है !!

उत्तर

24

उपयोग display:none; दृश्यता के बजाय

यह मैं

$(function(){ 

    $("#aLink2").click(function(){ 
     $('#loading').show(); 
    }); 

});​ 

कार्य नमूने के लिए ठीक काम करता है: http://jsfiddle.net/HShHg/6/

+0

मैं आपका नमूना देखता हूं और यह काम कर रहा है लेकिन मैं इसे अपने पेज में काम नहीं कर सकता। क्या आपको लगता है कि एक ही समय में कक्षा होने के साथ-साथ एक आईडी ऐसे व्यवहार का कारण बन सकती है? – iTEgg

+0

आईडी के तत्व अद्वितीय होना चाहिए। जांचें कि फ़ायरबग कंसोल टैब – Shyju

+0

@i का उपयोग कर कुछ अन्य स्क्रिप्ट त्रुटि है या नहीं। नहीं ये नहीं हो सकता! क्या आपके पास तत्व पर 'दृश्यता: छुपा' है? आपने इसे कैसे छुपाया? – gdoron

34

jQuery का .show() और .hide() केवल visibility संपत्ति पर नहीं, सीएसएस display संपत्ति पर काम करता है। मैंने अभी jQuery 1.7 स्रोत कोड की जांच की है और सत्यापित है कि यह मामला है।

तो, .css('display', 'none').show() से मिलान किया जाएगा।

आप दृश्यता बदलना चाहते हैं, तो आप सिर्फ सीएसएस सीधे बदल जाएगा या अपना स्वयं का बना hideV() और showV() तरीकों आप के लिए यह करने के लिए:

jQuery.fn.showV = function() { 
    this.css('visibility', 'visible'); 
} 

jQuery.fn.hideV = function() { 
    this.css('visibility', 'hidden'); 
} 
+1

डॉक्स में इस मिले display:none सीएसएस संपत्ति करने की आवश्यकता है लेआउट। – gdoron

+0

यह सही जवाब है। – candlejack

4

डॉक्स के अनुसार:

.show() This is roughly equivalent to calling .css('display', 'block')

इसलिए यदि आप visibility के साथ गड़बड़ कर चुके हैं, तो यह आपकी सहायता नहीं करेगा।

क्या करना चाहिए, हमेशा .css('display', 'none') साथ या .hide()


साथ छिपाने मैं बस इस उपयोगी docs पाया है: छिपा या अस्पष्टता:: 0 दृश्यता के साथ

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

0

मैं तत्व पर visibility: hidden; डालने और फिर .css("visibility", "visible"); का उपयोग दिखाने के लिए साथ रहना होगा यह ठीक है क्योंकि यह अभी भी पृष्ठ पर जगह लेता है।

यह लोड होने और अदृश्य सामग्री के डरावने फ्लैश (FOUC) के दौरान झटकेदार पृष्ठों से बच जाएगा। के बाद से वे अब भी में अंतरिक्ष उपभोग करते हैं, 0 दिखाई माना जाता है: `साथ ** दृश्यता तत्वों: छिपा ** या अस्पष्टता

0
<!DOCTYPE html> 
<html> 
<head> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
<script> 
$(document).ready(function(){ 
$('div#sidebar-collapses').click(function(){ 
    if ($("#title").is(":hidden")) { 
    $("#title").show(); 
    } else if ($("#title").is(":visible")) { 
    $("#title").hide(); 
    } 
}) 

}); 
</script> 
</head> 
<body> 
<div class="sidebar-collapse" style="" id="sidebar-collapses"> 
    <a href="#" class="sidebar-collapse-icon with-animation"> 
     Test    
     <i class="menu"></i> 
    </a> 
</div> 
<a href="mysite_url" id="title" style="display:none;"> <br> My Site Name </a> 

</body> 
</html> 
संबंधित मुद्दे