Intel XDK:在sprite按钮中设置href

时间:2015-10-14 06:36:35

标签: javascript jquery html intel-xdk

我正在 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数组中的正确元素。

1 个答案:

答案 0 :(得分:0)

document.getElementById('button').href

在上面的代码中,您尝试获取的button元素sprite button没有srchref元素,您可以使用点击事件去使用以下代码访问其他页面。

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;
});