0

I am using this ligature.js script to add ligatures to my site: http://code.google.com/p/ligature-js/

The problem I am having is I want to only apply it to certain class names because if it gets applied to some system fonts, other than the web font I am loading in, the ligature characters do not appear in Windows.

The docs say to implement it on specific elements using:

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

How can I use this to apply it to different classes, like .site-title, or use jquery to do this? Thanks in advance.

4

2 回答 2

1

我们在 Drupal 基础主题中使用这个 jQuery 解决方案(顺便说一句效果很好),并将其设置为针对多个选择器,如下所示。是否有一种简单的方法可以在我们的某些子主题中使用覆盖脚本关闭某些选择器上的连字替换?我们的子主题继承了我们的基本主题脚本,但我们并不总是希望对所有先前定义的元素进行连字替换。

$.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 回答
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 回答