数字增量与jquery
Number increment with jquery
我如何使用下面的代码来显示变量增量而不影响彼此,我试图在同一页面上使用脚本来显示不同的值,增加加班,但我在div1和div2中得到相同的值,即使认为它们有不同的var,下面的代码工作正常,当我在单独的页面上使用它们,但当我把它们放在一起在同一页面上,我得到相同的结果为两个div。
我需要帮助,使他们的工作不影响彼此或任何其他替代
我需要实际工作的代码,而不仅仅是解释
<script>
var START_DATE = new Date("May 10, 2010 22:30:00");
var INTERVAL = 8;
var INCREMENT = 60;
var START_VALUE = 250;
var count = 0;
$(document).ready(function() {
var msInterval = INTERVAL * 1000;
var now = new Date();
count = parseInt((now - START_DATE)/msInterval) * INCREMENT + START_VALUE;
$('#div1').html(count.toFixed(0));
window.setInterval( function(){
count1 += INCREMENT;
$('#div1').html(count.toFixed(0));
}, msInterval);
});
</script>
<script>
var START_DATE = new Date("March 10, 2010 22:30:00");
var INTERVAL = 10;
var INCREMENT = 10;
var START_VALUE = 350;
var count = 0;
$(document).ready(function() {
var msInterval = INTERVAL * 1000;
var now = new Date();
count = parseInt((now - START_DATE)/msInterval) * INCREMENT + START_VALUE;
$('#div2').html(count.toFixed(0));
window.setInterval( function(){
count1 += INCREMENT;
$('#div2').html(count.toFixed(0));
}, msInterval);
});
</script>
虽然dzylich的答案是正确的,但这里有一个更全面的解释:
Javascript有一个全局作用域,没有模块或命名空间的知识。在script
标记的顶部作用域中声明的任何var
都位于全局命名空间中,因此您的代码运行时就像您写过:
var count1 = whatever;
//do some stuff
var count1 = whatever; //count1 redeclared!
在同一script
。避免此问题的一种常用方法是将每段代码包装在一个立即调用的函数表达式(IIFE)中,为每个脚本标记创建一个作用域:
<script>
(function() {
var counter1 = whatever;
//do stuff to counter1
})();
</script>
<script>
(function() {
var counter1 = whatever; //different than the other counter1, exp follows
//do whatever
})();
</script>
因为每个代码块都包装在一个函数中(这为在该函数中定义的var
创建了一个新的作用域),这两个'counter1'实际上是不同的变量。注意,你不能在一个IIFE包装块中访问另一个IIFE包装块中的内容,除非你显式地返回它们,参见揭示的模块模式。
我认为你可以把代码块包装在IFEE中,即
(function(){
//code here
}());
这是因为您的count
声明相互覆盖。更改一个count
变量的名称,它应该工作。
相关文章:
- 如何为jQuery屏蔽输入插件创建一个允许字母数字、空格和重音字符的掩码
- 在Jquery倒计时计时器上设置每个数字的动画
- 如何在jquery+javascript中只在输入框中输入数字(使用regex)
- 使用jquery重写html数字
- jquery检查数字是否键入了isNaN
- 一个jquery验证器方法,它不接受纯数字或纯特殊字符,但接受上面是否有字母
- 通过jQuery函数将拉丁数字更改为波斯数字并添加逗号
- javascript/jquery 数字时钟脚本,24 小时格式,带有日期
- JQuery数字滑块错误
- jQuery数字计数器
- jQuery - 数字格式的小片段无法按预期工作
- jQuery:数字未更新,更改为0
- Javascript/Jquery:数字嵌套列表
- Jquery数字计数到一个目标数字
- jQuery数字到数字滚动
- 由滚动值触发的Jquery数字计数器动画
- JQuery数字格式
- 禁用keyup/keydown格式时使用$. Number () - jQuery数字插件自定义D
- JQuery数字验证
- Jquery数字时钟