[英]Break setInterval and variable undefined
我刚接触Javascript,并尝试执行此脚本。 Onclick它应该抓住项目的价格并停止价格下降。 Onclick,它不会停止并且不会抓住显示的价格。 请指教。
价格应该是:-
起拍价:100最低最高价:90
function updateValue(task) { var amount = document.getElementById("amount").value + "00"; var maxamt = document.getElementById("maxamount").value + "00"; var amountgrabbed = document.getElementById("revese-amt").value; var decimal_places = 2; var decimal_factor = decimal_places === 0 ? 1 : Math.pow(10, decimal_places); var floored_number = Math.floor(amount) / decimal_factor; var floored_number_max = Math.floor(maxamt) / decimal_factor; floored_number = floored_number.toFixed(decimal_places); floored_number_max = floored_number_max.toFixed(decimal_places); if (task == "stop") { console.log(amountgrabbed); check(refreshid, "stop", amountgrabbed); } else { var refreshid = setInterval(function() { floored_number = floored_number - 1 / 100; floored_number = floored_number.toFixed(decimal_places); if (floored_number < floored_number_max) { check(refreshid, "over"); } else { $('#revese-amt').html(floored_number); } }, 100); } } function check(refreshid, status, amt) { if (status == "over") { clearInterval(refreshid); $('#revese-amt').html('Deal Gone!'); } else if (status == "stop") { console.log(amt); clearInterval(refreshid); alert('Congratulations! You have grabbed the item @ price of RM ' + amt); } }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="text" name="amount" id="amount" value="Start Price" onclick=""/> <BR> <BR> <input type="text" name="maxamount" id="maxamount" value="Lowest Max Price" onblur="updateValue()" /> <span id="maxa"></span> <BR> <BR> <div style="width:130px; height:50px; background-color:red;" onclick="updateValue('stop')"> <center>MYR <p id="revese-amt"></p> </center> </div>
您可以在以下位置更改代码:
首先是html p
标签,必须使用textContent
方法获取其文本。
// change
var amountgrabbed = document.getElementById("revese-amt").value;
// to
var amountgrabbed = document.getElementById("revese-amt").textContent;
更改
var amountgrabbed = document.getElementById("revese-amt").value;
至
var amountgrabbed = $('#revese-amt').html();
因此,这与您分配的
$('#revese-amt').html(floored_number);
然后在全局空间中声明var refreshid变量。 使其无处不在。
$refreshid = setInterval(function() {
floored_number = floored_number - 1 / 100;
floored_number = floored_number.toFixed(decimal_places);
if (floored_number < floored_number_max) {
check(refreshid, "over");
} else {
$('#revese-amt').html(floored_number);
}
}, 100);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.