[英]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 = true
或click = false
设置为通过检查click
分配值落入if语句中,这已经是正确的! 仅当在确认布尔值为true之后想要将布尔值切换为false时,才执行此操作。
click = true
应该是click == true;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.