0

我需要将用户鼠标/指针垂直位置添加到链接中的 url

我有以下脚本。

 <script>
function show_coords(event)
{
var verticalPosition=event.clientY;
}
</script>

然后是页面正文中的链接:

<a href="testplayer.cfm"
onclick="location.href='testplayer.cfm?play=ai-session3.mp3'+'&position='+verticalPosition;return false;">link</a>

这会触发一个“ position=undefined

在 url 中包含垂直位置的正确语法是什么?

有什么建议么 ?

4

4 回答 4

0
<script type="text/javascript">
  function setUrl(event) {
    event.preventDefault();

    var href = event.target.href,
        yPos = event.clientY,
        url = href + "?play=ai-session.mp3&position=" + yPos;

    window.location.href = url;
  }
</script>

<a href="target.cfm" onclick="setUrl(event)">link</a>

看看这个:

jsfiddle

这是一个有点工作的版本,虽然因为在 jsfiddle 中更改 location.href 不切实际,我只是将结果打印到页面上。希望对你有帮助,祝你好运!

于 2013-10-29T06:55:42.557 回答
0

进行以下更改:

<a href="testplayer.cfm"
onclick="location.href='testplayer.cfm?play=ai-session3.mp3'+'&position='+show_coords();return false;">link</a>

show_coords() { return event.clientY; }

问题是您的变量 verticalPosition 不是全局变量,因此 a 标签的 onClick 事件无法读取它,因此克服这个问题的最佳方法是从函数返回值,然后从 onCLick 事件中调用函数。

于 2013-10-29T05:44:19.493 回答
0

你做错了试试这段代码

<a href="testplayer.cfm" id="testPlayer">link</a>

<script>
$(document).ready(function(e){
    $('#testPlayer').click(function(e)
    {
        location.href='testplayer.cfm?play=ai-session3.mp3'+'&position='+show_coords(e);
        return false;
    });
});

function show_coords(event)
{
    return event.clientY;
}
</script>
于 2013-10-29T05:45:43.273 回答
0

当你调用函数

show_coords(event){
    var verticalPosition = event.clientY;
}

您正在设置一个仅存在于该函数调用中的局部变量。你应该做的是这样的事情。

var verticalPosition;
show_coords(event){
    verticalPosition = event.clientY;
}

我真正要做的是让你的 HTML 像:

<a onclick="redirect()">link</a>

然后你的javascript(必须在脚本标签中)可以是:

var verticalPosition;
show_coords(event){
    verticalPosition = event.clientY;
}

function redirect(){
    window.location='testplayer.cfm?play=ai-session3.mp3&position='+verticalPosition;
 }
于 2013-10-29T05:43:00.970 回答