jQuery需要2次点击,而不是1次

时间:2019-11-13 16:44:06

标签: javascript jquery html onclick

我正在根据页面上按钮的单击来填充div中的值,但是要更改该值,需要两次单击。第一部分是使用在页面加载时显示的值填充calloutAmt和calloutAmtdouble范围,然后下一部分应根据单击的按钮来更改它们,但是要两次单击才能完成。

jQuery(document).ready(function($) {
  $("#calloutAmt").text(selectAmt);
  $("#calloutAmtdouble").text(selectAmt * 2);

  $("div.donation-level-container").on("click", function() {
    $("#calloutAmt").text(selectAmt);
    $("#calloutAmtdouble").text(selectAmt * 2);
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="matchcallout">Your gift of $<span id="calloutAmt"></span> will be DOUBLED to do $<span id="calloutAmtdouble"></span> worth of good! </div>

1 个答案:

答案 0 :(得分:0)

好吧,我无法发表评论,因为我没有所需的声誉。

也就是说,您的代码中没有任何内容可以让我们确定问题。您必须发布完整的代码才能做到这一点。

但是显然这可以按预期工作,并且您的问题将在于变量selectAmt的设置中,该变量仍未定义或''或第一次单击按钮,然后由ajax或随便。

因此,第二次单击时,第一轮已经填充了该变量,可以将其插入dom。一种检查是否确实存在问题的方法是更改​​两次单击之间的selectAmt的值,并查看该值是否始终落后于预期值一单击。从理论上讲,您想要做的是在跨度中设置文本,而不是单击按钮,而是在计算之后或填充selectAmt之后。

希望这会有所帮助。

-编辑- 在on click函数中添加console.log(selectAmt)...从理论上讲,第一次单击将是空的,但第二次不会是空的,这证实了我上面提到的怀疑。