【问题标题】:Unable to change text on onclick无法在 onclick 上更改文本
【发布时间】:2017-01-31 00:00:11
【问题描述】:

我在http://codepen.io/templenaylor/pen/ggoMPZ?editors=0011有一个codepen

我目前正在显示一个引用 var 的温度:

<ul>
  <li id="fTemp"></li>
</ul>

当尝试通过单击来更改它时,它将不起作用。这是我用来执行此操作的函数:

  $("#fTemp").click(function(){
    if(tempSwap===false){
      $("#fTemp").html(fTemp + " &#8457;");
      tempSwap=true;
    } else{
      $("fTemp").html(cTemp + " &#8451;");
      tempSwap=false;
    }
  });

我在我的函数中没有看到不正确的东西吗?

【问题讨论】:

  • $("fTemp") 应该是$("#fTemp")
  • 很好的收获@MichaelCoker。我推荐的一件事是您将按钮缓存在一个变量中,这样您就不必多次编写它并再次拼写错误。 var tempText = $("#fTemp"); 现在使用 tempTxt
  • 您的 codepen 不起作用,因为 AJAX 调用不起作用,但我做了这个。 codepen.io/mcoker/pen/EZoJgp 您只需在条件之前将 tempSwap 定义为 true 或 false 并更改我之前评论过的 $('#fTemp') 选择器

标签: javascript jquery css


【解决方案1】:

正如@MichaelCoker 所指出的,您在 else 分支中缺少 #

除了修复这个问题,我会将元素保存到一个变量中,以帮助防止将来出现错误。

var ftemp_li = $("#fTemp");

ftemp_li.click(function(){
  if(tempSwap == false){
    ftemp_li.html(fTemp + " &#8457;");
    tempSwap = true;
  } else {
    ftemp_li.html(cTemp + " &#8451;");
    tempSwap = false;
  }
});

http://codepen.io/anon/pen/VPyNPO?editors=0011

【讨论】:

  • 太棒了,谢谢。帮助解决了我的眼睛没有看到的明显问题,并让我预防了以后可能出现的错误。谢谢!
【解决方案2】:

您没有在 else 块中引用正确的选择器

} else{
      $("fTemp").html(

应该是

} else{
      $("#fTemp").html(

你似乎也绑定了点击事件每次你的 ajax 成功

将其移出回调并将您的点击事件绑定到 DOM 就绪处理程序中。

【讨论】:

    猜你喜欢
    • 2013-06-08
    • 2017-04-18
    • 2012-05-27
    • 1970-01-01
    • 2020-04-10
    • 2015-02-25
    • 1970-01-01
    • 2016-04-30
    相关资源
    最近更新 更多