Jquery .show () не розкриває div з видимістю прихованого


81

Основне питання jQuery:

Я намагаюся виявити divте, що було позначено як приховане за допомогою jQuery. Але я не зовсім розумію

Я створив JSFiddle тут: http://jsfiddle.net/VwjxJ/

В основному, я хочу використовувати, style="visibility: hidden;"а не style="display: none;"як я хочу, щоб простір прихованого елемента підтримувався

Намагалися з допомогою show(), і fadeIn()т.д. , але не працюють (вони роблять для style="display: none;")

що я роблю не так?


6
Спробуйте змінити фреймворк на jsfiddle на jQuery.
a'r

1
@ a'r: Проблема все ще залишається . Ось виправлена ​​версія: jsfiddle.net/fkling/9Z6nt/19
Фелікс Клінг

У вашому прикладі ви не створили потрібну бібліотеку для свого проекту, у "вибрати фреймворк" ви повинні вибрати "jQuery".
Megas

5
+1 для протидії голосам… людям слід витрачати більше часу, намагаючись зрозуміти проблему ...
Фелікс Клінг

5
Я думаю, це було тому, що інші люди думали, що ви просто забули вибрати потрібну бібліотеку (і після її зміни, здавалося, це спрацювало). Але вони не уважно прочитали ваше запитання та код. Чому б інакше перший коментар отримав 5 голосів проти? Так, можливо, ваш jsfiddle був неправильним, але це не є причиною для проти "imo". Проблема була зрозумілою навіть без цього (і її легко було виправити).
Фелікс Клінг,

Відповіді:


123

Якщо ви приховали це за допомогою, visibility:hiddenви можете показати це за допомогою jQuery за допомогою

$(".Deposit").css('visibility', 'visible');

А в скрипці вам бракує jQuery. Ось демонстрація: http://jsfiddle.net/9Z6nt/20/


document.readyне є необхідним. Код запущений onLoad(виберіть поле над рамками).
Фелікс Клінг,

О, не помітив цього, дякую. Але це буде корисно в реальному коді, якщо JS викликається до того, як DOM буде готовий.
Мухаммед Усман,

1
@Imray Це робить. Це не для вирішення visibility:hidden, я лише виправив його.
Мухаммед Усман

11

Відповідно до документації JQuery .show()"приблизно еквівалентно виклику .css('display', 'block'), за винятком того, що властивість display відновлено до того, що було спочатку". Натомість чітко встановіть стиль. Ви можете використовувати клас CSS

.hidden{
    visibility: hidden;
}
.shown{
    visibility: visible;
}

і set використовує

$("#yourdiv").removeClass("hidden").addClass("shown");

$("#yourdiv").toggleClass('hidden'); немає потреби в "показаному" класі
Олександр Птах

1
Це не зовсім однаково. Це залежить від можливих більш загальних змін у інших частинах CSS, але зазвичай ви, мабуть, уникнете цього, так.
Поліморфікс

7

Якщо ви хочете, щоб простір прихованого елемента зберігався, використовуйте непрозорість.

тобто:

$('div').fadeTo(500,1) //show
$('div').fadeTo(500,0) //hide

наприклад:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div style='opacity:0'>
  Test opacity
</div>


<button onclick="$('div').fadeTo(500,1);">Show</button>
<button onclick="$('div').fadeTo(500,0);">Hide</button>


3

Гей, твоя скрипка працює, просто виберіть фреймворк jQuery на скрипці. Якщо його видимість прихована, змініть властивість css visibility на visible.

(".Deposit").css('visibility','visible');



Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.