JQuery的竞争条件

时间:2012-06-12 18:53:09

标签: javascript jquery html css race-condition

我正在尝试编写一些代码来解开HTML select框中的每个项目,然后加粗玩家的名字。它只适用于我在行之间有一个警告框,如下所示:

$("#users > option").css("font-weight", "normal");
alert('AHAHSDYHSAUDHSAUDHSAUDH');           
$('#users option[value="' + strPlayer + '"]').css("font-weight", "bold");

如果我移除警告框,则播放器项目不会变为粗体。我唯一的猜测是JQuery操作是异步的。不知道如何解决这个问题。

感谢。

1 个答案:

答案 0 :(得分:0)

为什么不在第一部分使用CSS(将所有设置为非粗体),在最后部分使用jQuery(将用户名设置为粗体)。最好使用CSS规则应用默认的,可预测的样式,然后使用jQuery自定义:

<style type="text/css">
#users > option {font-weight:normal;}
</style>
<script type="text/javascript">
$('#users option[value="' + strPlayer + '"]').css("font-weight", "bold");
</script>

修改

如果两个语句的重叠是冲突的,请尝试删除重叠:

$('#users option:not([value="' + strPlayer + '"])').css("font-weight", "normal");
$('#users option[value="' + strPlayer + '"]').css("font-weight", "bold");