2016-10-12 10 views
0

私はjQueryを使ってDOM要素にアクセスしている、と私はこのように、変数にメソッドを追加したい:jQuery DOM変数のメソッドを再利用するには?

var nav = $("nav"), 
    footer = $("footer"); 

nav.visibility = function() { 
    return nav.css("display") !== "none"; 
} 

しかし、私は両方の変数のためif (nav.visibility() == true) {...}if (footer.visibility() == true) {...}のようなものをチェックするつもりです。 navfooterの両方で使用できる方法はありますか?

現時点では、visibilityメソッドを使用してプロトタイプのインスタンスを作成できる方法はありますか?

または私はこのために解決すべきである:おそらく

function visibility(element) { 
    return element.css("display") !== "none"; 
} 
+3

は、なぜあなたはあなただけの 'nav.isを行うことができたときにことをしたいと思うのプラグインとしてそれを書く必要があります(「:目に見える」)'などが – adeneo

+0

@adeneoおかげで、それはです私が取り組んでいるものに役立ちます。それにもかかわらず、質問はまだ – binaryfunt

答えて

2

をしたいですlike

var nav = $("nav"); 

if (nav.visibility() == true) {... 

あなたは

$.fn.visibility = function() { 
    return this.css("display") !== "none"; 
} 
+0

ですが、正しいですが、セットの最初に一致した要素でのみ動作します。これはOPの例ですが、実際には無関係です。実際には –

+0

@ A.Wolffです。これは、最も類似したjQueryメソッドと同様に、コレクションの最初の要素の結果を返します。 OPがより多くのことを望んでいるかどうかは本当にはっきりしません。たとえば、すべての要素やいくつかの要素などをチェックしますか? – adeneo

+0

@A.Wolffをクリアするには、私のWebページにnavとfooterが1つしかありません – binaryfunt

0

あなたが何かを確認したい場合は、

nav.add(footer).visibility() 
// if you have own "jQuery.fn.visible" function 

拡張版(おそらくより良い動作するはずです)

!nav.add(footer).is(':not(:visible)') 
// tests, is there an invisible element 
関連する問題