如何在函数onClick中转换值
How can I transform values inside a function onClick?
基本上,我已经导入了一个WebGL地球仪,并希望在单击地球仪时使其停止旋转。
以下是我试图让它停止的尝试:
setInterval(function() {
var c = earth.getPosition();
earth.setCenter([c[0], c[1] + 0.9]);
earth.onclick.setCenter({c[0], c[1]);
}, 50);
基本上,我想摆脱+0.9
onClick。如果有帮助,还可以添加下面地球物体的功能:
<script src="http://www.webglearth.com/v2/api.js"></script>
<script>
function initialize() {
var options = {atmosphere: true, center: [0, 0], zoom: 0};
var earth = new WE.map('earth_div', options);
WE.tileLayer('http://otile{s}.mqcdn.com/tiles/1.0.0/sat/{z}/{x}/{y}.jpg', {
subdomains: '1234',
attribution: 'Tiles Courtesy of MapQuest'
}).addTo(earth);
</script>
我猜.onclick
的语法不正确。它应该是什么?
检查webglearth上的示例,onClick
被定义为:
earth.on('click', callback)
因此,您需要将回调函数定义为:
callback = function(){···}
简而言之:
earth.on('click', function(e){···});
如果需要停止动画,则必须在onClick
事件上使用clearInterval
var interval = setInterval(function() {
var c = earth.getPosition();
earth.setCenter([c[0], c[1] + 0.9]);
}, 50);
···
earth.on('click', function(){
clearInterval(interval);
});
根据http://www.webglearth.org/api,应该是earth.on('click', yourCallback());
,而不是.onclick。此外,我会考虑对您的代码进行一些更改:
首先,不要一直在setatimeout函数中设置onclick处理程序。在初始化时执行一次,并在超时内使用一个变量,而不是0.9,您可以在onclick回调中将其设置为0。如果你想永远停止动画,你可以考虑跳出setTimeout循环,以防你偶然发现变量为0。
我将把实现留给你
相关文章:
- Jquery移动转换复选框在Jquery onclick函数()中第二次选中不起作用
- 如何从toggle转换为onclick
- 将onclick新窗口转换为onclick花式框
- javascript函数和HTML中的文本转换/动画onclick
- 如何将 JavaScript OnClick 转换为 jQuery
- 将内联 Javascript 转换为 onclick 事件
- javascript从onclick转换为函数
- 将onclick函数转换为onload
- 如何将“;onClick"事件转换为javascript文件
- 如何在单击另一个元素时将onclick函数转换为默认文本
- 如何在函数onClick中转换值
- 将带有onclick()的ul转换为带有onchange()的select
- 将onclick事件转换为addEventListener
- 在AngularJS中使用过滤器onclick进行毫米-英寸转换器
- 转换javascript从onclick到onhover
- 使用onClick事件触发CSS3转换
- 如何正确地转换onclick到onsubmit
- 将Onclick转换为addEventListener
- 构造onclick='location.href='将JS变量转换为HTML
- 帮助转换内联onclick