0

编辑:修复它!感谢那些说要发布我的 HTML 的人——我看了看它,并没有意识到我有两次“appname”类。

<li class="<?php echo $apid; ?> appname appname_getinfo appname_<?php echo $apid; ?>">
       <span class="appname"><?php echo $apname; ?></span>
</li>

所以,我删除了“”,它的工作原理!

假设我有一个类的三个元素:

埃尔一

埃尔二

埃尔三

当我点击 EL ONE 时,我想让它加粗。当我点击 EL 2 时,它应该变成粗体并且 EL ONE 应该变成正常重量。当我接下来单击 EL THREE 时,它应该变为粗体,EL TWO 变为正常重量。

我的脚本:

//// app info ////
$("li.appname_getinfo").click(function(){

    var appID = this.className.split(' ')[0];
    $.get("wishlist/appinfo.php?pw=R32kd63DL&apid=" + appID, function(data){                                
        $("div#appinfo").html(data);                            
    });

    $("div#appinfo").show();

    $(".appname").css("font-weight", "normal");
    $(this).css("font-weight", "bold");


});

我以为我可以将“appname”类的所有设置设置为正常,然后将 $(this) 更改为粗体,但它不起作用。(它不允许任何粗体)。

4

3 回答 3

0

虽然我怀疑问题是,如上所述,类名不匹配,但另一个原因可能是因为您在“li”元素中有一个容器,并且该容器设置为 font-weight normal。您在 LI 元素上设置粗体,但如果其中的元素是普通字体,那么在 LI 上设置它不会做任何事情......例如

...
<style>
span { font-weight:normal; }
</style>
...
<ul>
   <li class="appName"><span>this text will not bold when you bold the LI because it's in a span, and spans are styled with normal font-weight</span>
   </li>
<ul>

Chrome 的开发工具将帮助...

于 2012-05-09T16:28:55.517 回答
0

首先,根据经验,直接从 js 添加类而不是 css。其次,您将粗体规则应用于".appname"而不是"li.appname_getinfo"

于 2012-05-09T16:15:12.453 回答
0

需要使用一个$().each来为每个项目添加处理程序。我的代码是:

$('.appName').each(
  function(index, item){
    $(item).click(
      function(e) {
        $('.appName').css('fontWeight', 'normal');
        $(this).css('fontWeight', 'bold');
    });
});

在 Chrome 中测试,它似乎像你描述的那样工作

于 2012-05-09T16:24:24.150 回答