其中一个CSS属性不适用于Jquery:"第一个字母"

时间:2016-08-03 14:32:07

标签: jquery css

此查询执行所有转换,但不执行"第一个字母",是否有特定的方法来执行此操作:

这是我的剧本:

 function()
        {
            var o = this;

                $('li').on('mouseover', function(event){

                    var el = $(event.target).parent().children()['1'];
                      $(el).css({
                          "background" : "#483D8B",
                          "letter-spacing" : "2px",
                          "text-transform" : "uppercase"
                              });

                });

                $('li').on('mouseout', function(event){
                    var el = $(event.target).parent().children()['1'];
                    $(el).css({

                      "letter-spacing" : "0px",
                      "text-transform" : "lowercase",
                      "first-letter" : "uppercase",
                      "background" : "#4682B4"
                         });

                });

            },

和有关的Html:

s[i++] = '<li>';
s[i++] =  '<img id=\"'+  ConcernedText[j].name +'\" src="../renderer/bundles/' + ConcernedText[j].icon + '" width="268" height="120" style="display:block"\" />';
s[i++] =  '<a>'+ ConcernedText[j].name + '</a>';
s[i++] = '</p><!----><p>'
s[i++] = '</li>';

在调用此属性时有另一种方式,如:first-letter {text-transform:uppercase},如果是这样,Jquery中的语法应该是什么?

2 个答案:

答案 0 :(得分:1)

我建议通过添加/删除CSS中描述的类来分离CSS和JS。在这种情况下,您的first-letter将在CSS中运行。此外,如果您可以使用var el,我不确定为什么要创建$(this)。例如:

$('li').on('mouseout', function(event){
  $(this).addClass('lowercased');
});

在CSS文件中:

.lowercased {
  "letter-spacing" : "0px",
  "text-transform" : "lowercase",
  "background" : "#4682B4"
}


.lowercased a::first-letter {
  "text-transform" : "uppercase"
}

确保在相反的事件中删除该课程:

$('li').on('mousein', function(event){
  $(this).removeClass('lowercased');
});

答案 1 :(得分:1)

我建议在css中添加一个具有这些属性的类:

.myClass{
    letter-spacing: 0px;
    text-transform: lowercase;
    background: #4682B4;
}
.myClass::first-letter{
    text-transform: uppercase;
}

和您的脚本使用:

$(el).addClass('myClass'); 

而不是.css()。

            $('li').on('mouseover', function(event){

                var el = $(event.target).parent().children()['1'];
                  $(el).css({
                      "background" : "#483D8B",
                      "letter-spacing" : "2px",
                      "text-transform" : "uppercase"
                          });

            });

            $('li').on('mouseout', function(event){
                var el = $(event.target).parent().children()['1'];
                $(el).addClass('myClass);

虽然,您似乎正在使用悬停效果,但您可以使用

执行相同的操作
el:nth-of-type(2){
    letter-spacing: 0px;
    text-transform: lowercase;
    background: #4682B4;
}
el:nth-of-type(2)::first-letter{
    text-transform: uppercase;
}
el:nth-of-type(2):hover{
    letter-spacing: 2px;
    text-transform: uppercase;
    background: #483D8B;
}