jQueryには、CSS 設定を設定するメソッド.hide()
と.show()
メソッドがありますdisplay: none
。
visibility: hidden
設定を行う同等の機能はありますか?
使用できることはわかっています.css()
が、ある程度の機能が好き.hide()
です。ありがとう。
jQueryには、CSS 設定を設定するメソッド.hide()
と.show()
メソッドがありますdisplay: none
。
visibility: hidden
設定を行う同等の機能はありますか?
使用できることはわかっています.css()
が、ある程度の機能が好き.hide()
です。ありがとう。
回答:
独自のプラグインを作成できます。
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';
});
};
元のjQueryをオーバーロードしたい場合toggle()
は、お勧めしません...
!(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);
toggle()
他のスクリプトを壊す可能性のあるシャドウを作成する必要があります。あなたが望むならば、あなたはする追加の引数を追加することができますtoggle()
かどうかを指定するvisibility
かdisplay
をトグルする必要があります。ただし、最後の例ではカスタムのものを使用します。:)
show
(速度、イージング、コールバック)の追加パラメーターをサポートする方法の例を投稿できますか?
組み込みのものはありませんが、非常に簡単に独自のものを作成できます。
(function($) {
$.fn.invisible = function() {
return this.each(function() {
$(this).css("visibility", "hidden");
});
};
$.fn.visible = function() {
return this.each(function() {
$(this).css("visibility", "visible");
});
};
}(jQuery));
その後、次のように呼び出すことができます。
$("#someElem").invisible();
$("#someOther").visible();
これが実際の例です。
(function($) {...}(jQuery));
ラッパーでラップする意味は何ですか?自分の関数をjQueryで定義したことがないので、関数をストレートJavaScriptで定義しただけです。
$
親スコープ内の別のものを参照している場合でも、関数内で識別子を使用できます。
これを行うさらに簡単な方法は、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");
});
});
現在のレイアウトを維持するために、visibility:hiddenでのみ非表示の標準機能のみが必要な場合は、非表示のコールバック関数を使用して、タグのcssを変更できます。jqueryでドキュメントを非表示にする
例 :
$('#subs_selection_box').fadeOut('slow', function() {
$(this).css({"visibility":"hidden"});
$(this).css({"display":"block"});
});
これは通常のクールなアニメーションを使用してdivを非表示にしますが、アニメーションが終了したら、表示を非表示に設定し、表示をブロックします。
例:http : //jsfiddle.net/bTkKG/1/
$( "#aa")。css()ソリューションが必要でなかったのはわかっていますが、css()メソッドのみを使用するとアニメーションが失われるため、そうであるかどうかは指定しませんでした。
ここのようにどのような作品一の実施、だ$.prop(name[,value])
または$.attr(name[,value])
機能。b
変数が入力されている場合、可視性はそれに応じて設定され、this
返されます(他のプロパティを続行できるようにします)。それ以外の場合は、可視性の値を返します。
jQuery.fn.visible = function (b) {
if(b === undefined)
return this.css('visibility')=="visible";
else {
this.css('visibility', b? 'visible' : 'hidden');
return this;
}
}
例:
$("#result").visible(true).on('click',someFunction);
if($("#result").visible())
do_something;
jQuery hide()/ show()に相当する純粋なJS:
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
流暢なインターフェース「デザインパターン」return el
を満たすために使用しています。
こちらが動作例です。
以下では、非常に非推奨の代替案も示しますが、これはおそらく「質問に近い」回答です。
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
もちろん、ここでは純粋なjsを使用しているため、jQueryの 'each'(@JamesAllardiceの回答で与えられます)は実装していません。
動作例はこちらです。
.toggle()