2013-08-19 26 views
-4

這裏是FiddleJQuery:Click()更改列表項字體

無法讓這個工作!我正在破解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")  
    } 
    }); 
+2

任何理由你改變元素的樣式本身,而不是僅僅使這幾個樣式在樣式表? – doppelgreener

+1

[你想要這樣的東西](http://jsfiddle.net/zGXdf/4/)? –

+3

小提琴和這裏發佈的代碼是不同的 – iJade

回答

1

以下所有音符都基於你的jsfiddle。

  1. 注意,這個代碼就開始只運行一次,所以它會工作只有一次:

    if($("li[aria-selected=true")) { 
        $(this).css("font-weight", "bold"); 
    } 
    
  2. 而且,你給我們的小提琴,沒​​有什麼改變這一屬性:aria-selected

  3. 此外,您在if條件中的選擇器上缺少]

  4. 一個更好的方法將不僅改變了liaria-selected按鈕的點擊,但也給它一個CSS class,稱爲‘例如開放’。然後,在你的CSS上,給所有li s這個類font-weight: bold,你就完成了。

  5. 您應該開始使用Data而不是Attributes。使用

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")  
} 

});

0

分別替代地使用.css('font-weight', 'bold').css('font-weight', 'normal')

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"); 
     } 
    });