web-dev-qa-db-ja.com

あり WP 3.4カスタマイザ、postMessageを使用してJS内で作業している間に、別のオプションの現在の値を取得できますか?

私は現在、Ottoによるこの素晴らしい記事を扱っています。 http://ottopress.com/2012/how-to-leverage-the-theme-customizer-in-your-own-themes /

私の質問では、私は2つの別々に登録された設定を持っています、そして私は私のJSの中でそれらが一緒に動作するようにすることができるかどうか見たいです。

enter image description here

どちらの設定でも、記事で説明されているように、jQueryバインドを使用して、各設定が変更されたときにリアルタイムで現場で変更を加えることができます。しかし、私が興味を持っているのは、あるオプションに取り組んでいるときに、別のオプションから現在の値を取得できるかどうかです。

うまくいけば、このスクリーンショットは私が言っていることを説明するでしょう。

enter image description here

注:この例では、おそらく現在の値を決定するためにjQueryで現在設定されているfont-sizeを取得するためのいくつかの回避策を考え出すことができますが、これが可能かどうか一般的な例としてもっと尋ねます。

前もって感謝します!

2
Jason

できることは次のとおりです。

// ----------------------------------------------------------
// Primary Typograpy
// ----------------------------------------------------------

var current;

/* Primary Typography - Size */
wp.customize('typography_primary_size', function( value ) {
    current.size = value;
    value.bind(function(size) {
        $('h1, h2, h2, h4, h5, h6').css('font-size', size);
    });
});

/* Primary Typography - Face */
wp.customize('typography_primary_face', function( value ) {
    current.face = value;
    value.bind(function(face) {
        if(current.size.get() == 'whatever'){
            current.size.set('othervalue');
        } else {

        }
    });
});

申し訳ありませんがオットー、ちょっとハッキーかもしれませんが、うまくいきます。おまけに、setメソッドを使って変更コールバックを起動することもできます。current.size.set('othervalue')は、h1からh6へのヘッダーのカスタムcss変更を起動します。

2