单击鼠标时打开链接

时间:2014-01-29 21:25:02

标签: javascript jquery kineticjs

我对Javascript很新,所以我不太了解。我希望用户单击此形状并打开链接。这是我的代码:

stage.on('mousedown', function(OpenLink) {
    var shape = evt.targetNode;
    if (shape) {
        Application.OpenURL("[My link goes here]");
    }
  });

我不知道这是否接近正确,但我似乎无法找到答案。

编辑:这是我添加到此的代码:http://www.html5canvastutorials.com/labs/html5-canvas-interactive-building-map/

3 个答案:

答案 0 :(得分:0)

使用window.location = "[My link goes here]";导航到其他网址。

答案 1 :(得分:0)

我假设你安装了jQuery,考虑到你已经在你的问题中包含了jQuery标签。如果没有,请参阅http://jquery.com

您可以通过jQuery click事件处理程序执行此操作:

$('.stage').mousedown(function(e) {
    var shape = e.target;
    window.location.href = 'http://example.com';
});

如果这不是您想要的,请回答此答案,说明您希望它做什么。

See demo

PS:在此脚本中,您不会对触发click事件的元素执行任何操作,但您会将其存储在shape变量中。我纯粹是为了演示如何获取触发事件的元素,但是在这个脚本中,可以省略该行。

答案 2 :(得分:0)

认为这应该有效。 'stage'假定您引用了object标签。如果'stage'是一个类或id,则需要相应地更新。

$('stage').mousedown(function(ev){    // Attach mousedown listener
  if (ev.target.targetNode) {   // if clicked object has 'targetNode'
    ev.preventDefault();   // prevent additional bubbling
    window.location.href = 'http://www.google.com';    // Send browser to url
  }
});

您还可以将点击的对象上的网址存储为属性或数据,并在点击时抓取它。

<thing data-myUrl="www.website.com"></thing>

..和:

window.location.href = $(ev.target).data('myUrl')

编辑:

使用您提供的链接中的功能,您的功能应该是:

stage.on('mousedown', function(evt) {
  var shape = evt.targetNode;
  if (shape) {
    window.location.href = 'http://www.google.com';
  }
});

..因此,只要用户点击任何具有ANYTHING作为其“形状”值的内容,就会将浏览器发送到您的网址。您可以使用(shape === 'circle')或其他任何内容,如果您想更具体地了解他们点击的内容。 ('circle'是猜测,您的实际形状值可能不同)