繁体   English   中英

为什么jQuery click事件只能工作一次?

[英]Why does jQuery click event only work once?

我正在尝试使速度单位在单击时切换。 但是,此操作仅一次。 我已经没有足够的尝试空间了。 我也试过.click() .live() .toggle()只使它消失,重新出现)等。

HTML:

<li id="wind">Wind speed</br>
   <p class='windSpeedKm'></p>
</li>

使用Javascript:

var click = true;

$('#wind').on('click', function() {
  if (click = false) {
    $('#wind').html(function() {
      $(this).html("Wind speed<br>" + windKm);
      click = true;
    });
  } else if (click = true) {
    $('#wind').html(function() {
      $(this).html("Wind speed<br>" + windMi);
      click = false;
    });
  }
});

这并不是您所要求的,但这将为您节省很多时间,这是令人难以置信的。 它具有内置的自动转换功能,因此您不必手动更新两个数字。 它不会取代不必要的内容来代替html。

<li id="wind">Wind speed</br>
    <p class='windSpeedKm' km="500">500</p>
</li>


<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<script>
    function toMiles(km) {
        return parseFloat(km) * 0.62137;
    }

    $('#wind').on('click', function() {
        console.log($(this).attr("km"));
        windSpeedKm = $(this).find(".windSpeedKm");
        km = windSpeedKm.attr("km");
        if (km === windSpeedKm.html()) {
            windSpeedKm.html(toMiles(km));
        } else {
            windSpeedKm.html(km);
        }       
    });

</script>

该代码存在一些语法问题:

var click = true;

$('#wind').on('click', function() {
  if (click) {
    $(this).html("Wind speed<br>" + windKm):
     click = true;
  } else {
    $(this).html("Wind speed<br>" + windMi);
     click = false;
  }
});

注意 :在您的示例中,没有必要将click = trueclick = false设置为通过检查click分配值落入if语句中,这已经是正确的! 仅当在确认布尔值为true之后想要将布尔值切换为false时,才执行此操作。

click = true应该是click == true;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM