Odpowiednik jQuery.hide () aby ustawić widoczność: hidden
W jQuery istnieją metody .hide()
i .show()
, które ustawiają ustawienie CSS display: none
.
Czy istnieje równoważna funkcja, która ustawiłaby ustawienie visibility: hidden
?
Wiem, że mogę używać .css()
, ale wolę jakąś funkcję jak .hide()
lub tak. Dzięki.
5 answers
Możesz tworzyć własne wtyczki.
jQuery.fn.visible = function() {
return this.css('visibility', 'visible');
};
jQuery.fn.invisible = function() {
return this.css('visibility', 'hidden');
};
jQuery.fn.visibilityToggle = function() {
return this.css('visibility', function(i, visibility) {
return (visibility == 'visible') ? 'hidden' : 'visible';
});
};
Jeśli chcesz przeciążyć oryginalny jQuery toggle()
, którego nie polecam...
!(function($) {
var toggle = $.fn.toggle;
$.fn.toggle = function() {
var args = $.makeArray(arguments),
lastArg = args.pop();
if (lastArg == 'visibility') {
return this.visibilityToggle();
}
return toggle.apply(this, arguments);
};
})(jQuery);
JsFiddle .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-18 11:15:21
Nie ma takiego wbudowanego, ale można by całkiem łatwo napisać własny:
(function($) {
$.fn.invisible = function() {
return this.each(function() {
$(this).css("visibility", "hidden");
});
};
$.fn.visible = function() {
return this.each(function() {
$(this).css("visibility", "visible");
});
};
}(jQuery));
Możesz to nazwać tak:
$("#someElem").invisible();
$("#someOther").visible();
Oto działający przykład .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-08 08:22:20
Jeszcze prostszym sposobem na to jest użycie metody jQuery toggleClass ()
CSS
.newClass{visibility: hidden}
HTML
<a href="#" class=trigger>Trigger Element </a>
<div class="hidden_element">Some Content</div>
JS
$(document).ready(function(){
$(".trigger").click(function(){
$(".hidden_element").toggleClass("newClass");
});
});
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-20 13:47:11
Jeśli potrzebujesz tylko standardowej funkcjonalności hide only with visibility: hidden, aby zachować aktualny układ, możesz użyć funkcji zwrotnej hide, aby zmienić css w tagu. Hide docs in jquery
Przykład:
$('#subs_selection_box').fadeOut('slow', function() {
$(this).css({"visibility":"hidden"});
$(this).css({"display":"block"});
});
Spowoduje to użycie normalnej chłodnej animacji do ukrycia div, ale po zakończeniu animacji ustawisz widoczność na ukrytą, a wyświetlanie na zablokowaną.
Przykład: http://jsfiddle.net/bTkKG/1/
I know you didnt want $("#aa").rozwiązanie css (), ale nie podałeś, czy jest, ponieważ używając tylko metody css() tracisz animację.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-27 20:24:04
Pure js odpowiednik dla jQuery hide () / show ():
function hide(el) {
el.style.visibility = 'hidden';
return el;
}
function show(el) {
el.style.visibility = 'visible';
return el;
}
hide(document.querySelector(".test"));
// hide($('.test')[0]) // usage with jQuery
Używamy return el
ze względu na spełnianie fluent interface "desing pattern".
Oto przykład roboczy .
Poniżej zamieszczam również wysoce niezalecane alternatywa, która jest jednak prawdopodobnie bardziej "bliska pytania" ODPOWIEDŹ:
HTMLElement.prototype.hide = function() {
this.style.visibility = 'hidden';
return this;
}
HTMLElement.prototype.show = function() {
this.style.visibility = 'visible';
return this;
}
document.querySelector(".test1").hide();
// $('.test1')[0].hide(); // usage with jQuery
Oczywiście nie jest to implementacja jQuery 'each' (podana w odpowiedzi @JamesAllardice), ponieważ używamy czystego js tutaj.
Przykład roboczy to tutaj .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-30 09:48:54