html5 javascript,全局变量
html5 javascript, global variables
如何创建一个在加载页面时定义的变量,而不是在脚本中?
<script>
var comp = 0;
function mMove(e)
{
var x = e.screenX;
if (x > comp + 80)
{
comp = x;
somethingcool();
}
}
</script>
<video id="vid_ID" onclick="vidclick()" onmousemove="mMove(event)" controls tabindex="0" autobuffer preload>
<source type="video/mp4; codecs="avc1.42E01E, mp4a.40.2"" src="test.mp4"></source>
<p>Sorry, your browser does not support the <video> element.</p>
</video>
我有一些视频和onmousemove活动。我希望每次鼠标沿x轴移动80像素时都运行somethingcool()
函数。我需要一些方法来存储comp
变量。
在您提到要重新加载具有sript的页面之后。问题显而易见您正在覆盖值。以下是可能的解决方案
解决方案
1.请确保将变量声明移出该页。将其移动到主页面。否则,每次加载该页面时,该值都将设置回0。
2.使用LocalStorage存储值。你可以这样做。
<script>
if(localStorage.getItem("compValue")){ //First time page load storage will be undefined set the value to 0. On consecutive calls this if block will not execute and hence value will not be overwritten.
localStorage.setItem("compValue", 0);
}
var comp = localStorage.getItem("compValue"); //read from storage
function mMove(e)
{
var x = e.screenX;
if (x > comp + 80)
{
comp = x;
somethingcool();
}
}
</script>
我更喜欢选项1,因为使用存储器的任务不那么复杂。只需将变量设为全局变量,并注意不要将其改写为
您可以使用document.ready函数。每次加载页面或刷新页面时,它都会与页面一起加载。只需在其中添加comp = 0
或var comp = 0
,就可以将其作为全局JavaScript变量在代码中的任何位置使用。这是一个jquery函数。更多信息,请访问:https://learn.jquery.com/using-jquery-core/document-ready/
相关文章:
- 在javascript函数中设置全局变量
- 从Javascript方法返回全局变量
- javascript隐式全局变量
- 使用全局变量来存储数字(JavaScript)
- 在Javascript中使用全局变量作为缓存是很好的
- 如何在javascript中为全局变量赋值
- 没有通过ajax调用设置Javascript全局变量
- 如何在javascript中创建全局变量(使用webpack)
- 变量只能在函数中局部工作,不能全局工作-Javascript
- 如何将变量声明为全局变量?用case foreach?Javascript
- 如何将标头中的全局变量加载到外部Javascript FIle中
- 如何在 JavaScript 中访问全局变量
- 尝试使用多个函数时无法使用全局变量 - JavaScript - 初学者
- 更新全局变量javascript/html
- 全局变量javascript、java、php,所有语言
- 全局变量JavaScript
- 如何在闭包中访问全局变量?(Javascript)
- 在一个函数中为另一个函数使用非全局变量(Javascript)
- 访问全局变量javascript
- 将函数中的变量设置为全局变量:Javascript