中断集间隔和变量未定义
Break setInterval and variable undefined
我是Javascript的新手,并尝试做这个脚本。点击它应该抓住项目的价格并停止价格下降。点击时,它不会停止,也不会抓住显示的价格。请指教。
价格应为:-
起始价: 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);
相关文章:
- Javascript变量未定义,onchange不起作用
- 定义的变量未定义
- 无法弄清楚为什么本机 Promise 变量未定义
- Windows 8 Javascript 疯狂 - 变量未定义
- $rootScope变量未定义
- 变量未定义
- Javascript:TypeError变量未定义
- 变量未定义/超出范围
- javascript变量未定义
- Javascript变量未定义错误
- $scope变量未定义,尽管它是在$watch函数内部设置的
- 类型错误:变量未定义
- AngularJs $http变量未定义
- JQuery:创建扩展返回变量未定义
- d3.js变量未定义,但在Firefox控制台中,它可以工作
- Javascript 中用于上传表单数据的变量未定义
- 节点.js模块级变量未定义
- Node.js req.session 变量未定义
- 错误:AngularJs 变量未定义,当使用 grunt 运行时.(泽泽尔)
- 将字符串拆分为两个变量 - 未定义不是一个函数