编辑:修好了!感谢那些说发布我的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 TWO
EL THREE
当我点击EL ONE时,我想大胆一点。当我点击EL TWO时,它应该变为粗体,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”设置为normal,然后将$(this)更改为粗体,但它不起作用。 (它不允许任何粗体)。
答案 0 :(得分:0)
首先,根据经验,直接从js添加类而不是css。其次,您将粗体规则应用于".appname"
而不是"li.appname_getinfo"
答案 1 :(得分:0)
需要使用$().each
为每个项目添加处理程序。我的代码是:
$('.appName').each(
function(index, item){
$(item).click(
function(e) {
$('.appName').css('fontWeight', 'normal');
$(this).css('fontWeight', 'bold');
});
});
在Chrome中测试过,它似乎可以像您描述的那样工作
答案 2 :(得分:0)
虽然我怀疑问题是,如上所述,类名不匹配,另一个原因可能是因为你在“li”元素中有一个容器,并且该容器设置为font-weight normal。你在LI元素上设置粗体,但如果它内部的元素是普通字体,那么在LI上设置它将不会做任何事情...... e.g。
...
<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的开发工具有助于......