我需要将用户鼠标/指针垂直位置添加到链接中的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
”
在网址中包含垂直位置的正确语法是什么?
有什么建议吗?
答案 0 :(得分: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;
}
答案 1 :(得分: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活动。
答案 2 :(得分: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>
答案 3 :(得分: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中更改location.href是不切实际的,我只是将结果打印到页面。希望它有所帮助,祝你好运!