我对javascript还是比较陌生,我整天都在为一个问题而烦恼-我希望有人能指出正确的方向。
我有一个可以做幻灯片的PHP脚本。我有NEXT和PREVIOUS按钮,其中包含指向另一个javascript函数的动态链接。我希望找到一种使用键盘上的箭头键触发它们的方法。
到目前为止,我已经找到一种使箭头键启动特定URL的方法,但是我现在有点挣扎。由于在页面上隐藏和显示DIV,因此目标URL会更改。因此,我认为我需要执行以下一项操作:
稍后在页面主体中使用PHP变量中构造的URL触发此代码-无需刷新页面:
<script type="text/javascript">
$(document).keydown(function(e){
//e.which is set by jQuery for those browsers that do not normally support e.keyCode.
var keyCode = e.keyCode || e.which;
if (keyCode == 37)
{
window.location = 'http://www.domain.com/previous-image.jpg';
return false;
}
if (keyCode == 39)
{
window.location = 'http://www.domain.com/next-image.jpg';
return false;
}
});
</script>
...或者我需要找到一种在特定名称的DIV中触发链接的方法-但前提是该DIV没有隐藏。
任何指针将不胜感激。
编辑:12/10/10
到目前为止,感谢大家的帮助。我现在了解的更多了,也许我对自己要达到的目标更加清楚。
我有一个包含5个DIV的页面-其中4个是隐藏的。除了其中显示的图像之外,每个图像都是相同的,我使用以下代码隐藏或显示各种DIV:http://jsfiddle.net/edzpgt/ZhjRc/12/
我需要使用箭头键浏览页面,因此我们将为此添加一些Jquery:http://jsfiddle.net/edzpgt/b2bWz/3/
我认为我有两个问题:
1.我不确定我的语法是否正确,以确保仅使用可见DIV中的箭头键链接。
2.我认为我没有正确设置或正确使用下一个/上一个页码变量,以便获得正确的目标URL传递给Jquery。
有人可以帮忙吗?
最佳答案
1)您不需要处理e.keyCode || e.which
。 jQuery为您做到了。只需使用e.which
2)最好在处理程序之外创建两个函数,以便您可以从其他地方调用它们:
function previousLocation() {
window.location = 'http://www.domain.com/previous-image.jpg';
}
function nextLocation() {
window.location = 'http://www.domain.com/next-image.jpg';
}
$(document).keydown(function (e) {
var keyCode = e.which;
if (keyCode == 37) {
previousLocation();
return false;
}
if (keyCode == 39) {
nextLocation();
return false;
}
});
3)但是,如果您确实需要触发-这是示例:
$(document).keydown(function (e) {
var keyCode = e.which;
function previousLocation() {
window.location = 'http://www.domain.com/previous-image.jpg';
}
function nextLocation() {
window.location = 'http://www.domain.com/next-image.jpg';
}
$(document).bind('goprev', previousLocation);
$(document).bind('gonext', nextLocation);
if (keyCode == 37) {
previousLocation(); // no problems here
return false;
}
if (keyCode == 39) {
nextLocation(); // no problems here
return false;
}
});
// external call example
$(document).trigger('goprev');
$(document).trigger('gonext');
关于javascript - 触发嵌套的javascript函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12785565/