JQuery:单击()以更改列表项字体

时间:2013-08-19 04:56:23

标签: jquery css

以下是Fiddle

不能让这个工作!我正在攻击Jquery.tabs()功能。希望标签文本在选中时变为粗体。不确定我做错了什么?

<div>
    <ul id="tablist">
        <li id ="li" aria-selected="true" >
            <a id="ui-id-1"  href="#tabs-Hobby">Hobby</a>
        </li>
        <li id="lw" aria-selected="false">
            <a id="ui-id-2" href="#tabs-News">News</a>
        </li>
    </ul>
</div>

JQuery:

  $(" ul li a").click(function()
   {
    if($("ul").find("li[aria-selected=true]")) {
    $("ul").find("li[aria-selected=true]").attr("style", "font-weight:bold")       
    }

    if($("ul").find("li[aria-selected=false]")) {
        $("ul").find("li[aria-selected=true]").attr("style", "font-weight:normal")       
    }
  });

4 个答案:

答案 0 :(得分:1)

以下所有注释均基于您的jsFiddle。

  1. 请注意,此代码在开始时只运行一次,因此它只能运行一次:

    if($("li[aria-selected=true")) {
       $(this).css("font-weight", "bold");
    }
    
  2. 此外,在你给我们的小提琴中,没有改变这个属性:aria-selected

  3. 此外,您在]条件下的选择器上缺少if

  4. 更好的方法是不仅更改按钮点击的li aria-selected,还会给它一个CSS class,例如'打开',例如。然后,在您的CSS上,为所有li提供此类font-weight: bold,您就完成了。

  5. 您应该开始使用Data而不是Attributes

答案 1 :(得分:1)

试试这个:

$("ul li a").click(function()
    {
        if($(this).attr('id') == 'ui-id-1') {
            $('#ui-id-1').css("font-weight", "bold");
            $('#ui-id-2').css("font-weight", "normal");
        } else {
            $('#ui-id-1').css("font-weight", "normal");
            $('#ui-id-2').css("font-weight", "bold");
        }
    });

答案 2 :(得分:0)

尝试使用此

$(" ul#tablist li a").click(function()
{
 if($("ul#tablist").find("li[aria-selected=true]")) {
$("ul#tablist").find("li[aria-selected=true]").css("font-weight", "bold")       
}

if($("ul#tablist").find("li[aria-selected=false]")) {
    $("ul#tablist").find("li[aria-selected=true]").css("font-weight", "normal")       
}

});

答案 3 :(得分:0)

分别使用.css('font-weight', 'bold').css('font-weight', 'normal')