我正在 Intel XDK 中开发应用程序,并希望通过javascript设置精灵按钮的href
。
我试过了:
document.getElementById('button').href
document.getElementById('button').src
使用jQuery通过setAttribute
..
任何能告诉我在 intel XDK 中设置精灵按钮的href应该怎么做的人?
编辑:
我现在正在使用此代码:
var arr = [{
"url": "http://www.example.com/"
}]
for(j =0; j < arr.length; j++){
document.getElementById('button').addEventListener("click", function() {
window.location.href = arr[this.id].url;
});
}
arr []声明在文件的顶部。 arr []有更多数据,但例如我只显示了这一点。
当我尝试在此代码中访问它时,它会给我一个Uncaught TypeError: Cannot read property 'url' of undefined anonymous function
我在.addEventListener
代码之外测试了这个,这是有效的。
如何从此代码中访问arr[]
?
由于
编辑2:我找到了解决问题的方法。它与变量范围有关。通过调用this.id
而不是j
,我可以访问arr
数组中的正确元素。
答案 0 :(得分:0)
document.getElementById('button').href
在上面的代码中,您尝试获取的button
元素sprite button
没有src
或href
元素,您可以使用点击事件去使用以下代码访问其他页面。
var myLinkArray = [{"id":"1","url":"www.example.com"}]
document.getElementById('button').addEventListener("click", function () {
window.location.href = myLinkArray[0].url;
});
你不能直接传递参数来点击事件,但可以在点击事件功能中使用已定义的数组。
此代码为click
事件添加事件侦听器并重定向到给定的href
。
var arr = [{
"url": "http://www.example.com/"
}]
for(j =0; j < arr.length; j++){
document.getElementById('button').addEventListener("click", function() {
window.location.href = arr[j].url;
});
}
不需要for
循环。您可以使用以下代码直接访问网址:
var arr = [{
"url": "http://www.example.com/"
}]
document.getElementById('button').addEventListener("click", function() {
window.location.href = arr[0].url;
});