首页 > 解决方案 > 在单击警报后删除所述按钮之前,如何强制将按钮文本更改为粗体?

问题描述

我在 IE 中得到了正确的序列,但在 Chrome 中却没有。在 Chrome 中,按钮文本不是粗体,而是只有警报消息和按钮被删除。

我尝试在 Chrome 中逐步运行开发人员模式,但文本在警报之前正确显示粗体,然后删除按钮。

下面是我的 jQuery 按钮点击。

    $("button").click(function() {
      $(this).css('font-weight', '700');
      var elmId = $(this).attr("id");
      alert(elmId);
      $(this).remove();
    });

我希望按钮文本在警报消息之前和删除所述按钮之前为粗体。

编辑:通过下面的答案解决

标签: javascripthtmljquery

解决方案


该代码不起作用,因为alert()异步执行,这就是为什么按钮被删除,并且更改不可见的原因。这就是我使用 setTimeout 的原因,它在一定时间后开始执行。它等待 1 毫秒,然后生成警报,并删除button元素。到那时,CSS 更改已经发生,并且是可见的。:)

$("button").click(function() {
  let el = $(this);
  el.css('font-weight', '700');
  var elmId = el.attr("id");
  setTimeout(function(){
    alert(elmId);
    el.remove();
  }, 1000);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button>BOLD</button>


推荐阅读