与 JQuery 的争用条件

Race condition with JQuery

本文关键字:争用条件 JQuery      更新时间:2023-09-26

我正在尝试编写一些代码,将HTML select框中的每个项目都加粗,然后加粗玩家的名称。仅当我在行之间有一个警报框时,它才有效,如下所示:

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

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

谢谢。

为什么不使用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");