jQuery:按下按键时触发<a>标签的点击事件
jQuery: Trigger click event of <a> tag on key-down
我创建了一个 html 页面,该页面显示图像并根据左右箭头键导航到其他图像。
有一个带有 download 属性的锚标记。当前显示在屏幕上的图片路径通过jquery.
设置为该标签的href
单击此 link 可下载图像。我需要按下向下箭头,图像应该被下载。 (总之应该触发这个锚标签的点击事件。)
我尝试了 jquery trigger 功能,但没有用。下面是我的代码。
提前致谢。
<!doctype HTML>
<html>
<head>
<title>My Page</title>
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<style type="text/css">
div.links {
top: 95%;
left: 45%;
position: fixed;
}
a.dLink, a.nav {
text-decoration: none;
}
label {
background: #330033;
padding: 2px;
color: #CC9933;
cursor: pointer;
}
</style>
</head>
<body>
<input type="hidden" id="iNames"
value="IMG1.jpg,IMG2.jpg,IMG3.jpg">
<img class="pic" />
<div class="links">
<label class="prev">Prev</label>
<a class="dLink" href="" download>
<label>Download</label>
</a>
<label class="next">Next</label>
</div>
<script type="text/javascript">
$(document).ready(
function() {
iNames = ($("#iNames").val()).split(",");
total = iNames.length;
i = 0;
$("img.pic").attr("src",iNames[i]);
$("a.dLink").attr("href", $("img.pic").attr("src"));
$(document).keydown(function(e) {
switch (e.which) {
case 37: // left
prev();
break;
case 39: // right
next();
break;
case 40: // down
$("a#dLink").trigger("click"); //this is not working
break;
default:
return;
}
});
function next() {
i = i == total - 1 ? 0 : i + 1;
setImage();
}
function prev() {
i = i == 0 ? total - 1 : i - 1;
setImage();
}
function setImage() {
$("img.pic").attr("src",iNames[i]);
$("a.dLink").attr("href", $("img.pic").attr("src"));
}
$("label.next").click(function() {
next();
});
$("label.prev").click(function() {
prev();
});
});
</script>
</body>
</html>
改为调用 DOM 节点方法触发本机点击事件:{需要使用 class 选择器,而不是 ID}
$(".dLink")[0].click();
有一个小错字。
试试这个:
$("a.dLink")[0].click();
因为 dLink
是应用于 <a>
的 class。您必须使用 a.dLink
选择器。
我创建了一个 html 页面,该页面显示图像并根据左右箭头键导航到其他图像。
有一个带有 download 属性的锚标记。当前显示在屏幕上的图片路径通过jquery.
设置为该标签的href单击此 link 可下载图像。我需要按下向下箭头,图像应该被下载。 (总之应该触发这个锚标签的点击事件。)
我尝试了 jquery trigger 功能,但没有用。下面是我的代码。
提前致谢。
<!doctype HTML>
<html>
<head>
<title>My Page</title>
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<style type="text/css">
div.links {
top: 95%;
left: 45%;
position: fixed;
}
a.dLink, a.nav {
text-decoration: none;
}
label {
background: #330033;
padding: 2px;
color: #CC9933;
cursor: pointer;
}
</style>
</head>
<body>
<input type="hidden" id="iNames"
value="IMG1.jpg,IMG2.jpg,IMG3.jpg">
<img class="pic" />
<div class="links">
<label class="prev">Prev</label>
<a class="dLink" href="" download>
<label>Download</label>
</a>
<label class="next">Next</label>
</div>
<script type="text/javascript">
$(document).ready(
function() {
iNames = ($("#iNames").val()).split(",");
total = iNames.length;
i = 0;
$("img.pic").attr("src",iNames[i]);
$("a.dLink").attr("href", $("img.pic").attr("src"));
$(document).keydown(function(e) {
switch (e.which) {
case 37: // left
prev();
break;
case 39: // right
next();
break;
case 40: // down
$("a#dLink").trigger("click"); //this is not working
break;
default:
return;
}
});
function next() {
i = i == total - 1 ? 0 : i + 1;
setImage();
}
function prev() {
i = i == 0 ? total - 1 : i - 1;
setImage();
}
function setImage() {
$("img.pic").attr("src",iNames[i]);
$("a.dLink").attr("href", $("img.pic").attr("src"));
}
$("label.next").click(function() {
next();
});
$("label.prev").click(function() {
prev();
});
});
</script>
</body>
</html>
改为调用 DOM 节点方法触发本机点击事件:{需要使用 class 选择器,而不是 ID}
$(".dLink")[0].click();
有一个小错字。
试试这个:
$("a.dLink")[0].click();
因为 dLink
是应用于 <a>
的 class。您必须使用 a.dLink
选择器。