0

このligature.jsスクリプトを使用して、サイトに合字を追加しています:http ://code.google.com/p/ligature-js/

私が抱えている問題は、特定のクラス名にのみ適用したいということです。これは、ロードしているWebフォント以外の一部のシステムフォントに適用すると、合字文字がWindowsに表示されないためです。

ドキュメントは、以下を使用して特定の要素に実装すると述べています。

ligature(false, document.getElementById('myMemoirs'));

これを使用して.site-titleなどのさまざまなクラスに適用したり、jqueryを使用してこれを行うにはどうすればよいですか?前もって感謝します。

4

2 に答える 2

1

合字のソースコードを見ると、2番目の引数として1つの要素のみを渡すことがサポートされていますが、渡されたすべての要素の子を通過して合字を適用することはサポートされています。一度に1つの要素で関数を呼び出すループで合字を通過させることにより、複数の要素に合字を適用できます。

var siteTitle = document.getElementsByClassName('site-title');
var elemLength = siteTitle.length;
while(elemLength--) {
  ligature(false, siteTitle[elemLength]);
}

またはjQueryと

$.each($('.site-title'), function(index, element) {
  ligature(false, element);
});

しかし、おそらくこれを行うための最良の方法は、複数の要素を処理するように関数をリファクタリングすることです。

于 2013-01-23T22:43:00.827 に答える
1

このjQueryソリューションをDrupalベーステーマ(ところでうまく機能します)で使用しており、以下に示すように、複数のセレクターをターゲットにするように設定しています。一部のサブテーマでオーバーライドスクリプトを使用して、特定のセレクターの合字置換をオフにする簡単な方法はありますか?サブテーマは基本テーマスクリプトを継承しますが、以前に定義されたすべての要素で合字を置き換える必要はありません。

$.each($('h1, h2.site-name, .node-page h2, .node-page h3, .node-page h4'), function(index, element) {
    ligature(false, element);
});
于 2013-04-09T20:15:51.247 に答える