我试图通过输出链接ID来检测前三个链接中的哪一个被点击。
它始终返回undefined
。
怎么了?
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
window.onload = function() {
onclick = function() {
alert(this.id);
return false;
}
}
</script>
</head>
<body>
<a class="a" name="a" id="1" href="#">---1---</a>
<a class="a" name="a" id="2" href="#">---2---</a>
<a class="a" name="a" id="3" href="#">---3---</a>
<a href="#"> normal link </a>
</body>
</html>
答案 0 :(得分:13)
您没有定位任何链接。
window.onload = function() {
$("a.a").click(function() {
alert(this.id);
return false;
});
}
这是做什么的($("a.a").click(function(){
)正在查找类名'a'的锚点上的任何点击事件,并运行以下匿名函数。
答案 1 :(得分:4)
你甚至没有使用过一点Jquery。在这里查看我在jsfiddle上制作的jquery版本:http://jsfiddle.net/8tu8W/
答案 2 :(得分:2)
稍微修改了您的HTML
<a class="a" name="a" id="anch1" href="#">---1---</a>
<a class="a" name="a" id="anch2" href="#">---2---</a>
<a class="a" name="a" id="anch3" href="#">---3---</a>
<a href="#"> normal link </a>
更改了您的锚ID并引入了文档就绪事件。
$(function(){
$("a.a").click(function(){
alert (this.id);
});
});
答案 3 :(得分:0)
像这样的东西。您将向数组添加可点击链接,然后将click事件绑定到文档,在事件方法中,您将获得单击查找的目标(如果存在)以及数组中的哪个位置。
window.onload = function() {
var clickableLinks = [];
var links = document.getElementsByTagName("a");
for(var i=0,len=links.length;i< len;i++) {
var link = links[i];
if(link.className.split(" ").indexOf("a") != -1) { // Or another detection
clickableLinks[clickableLinks.length] = link;
}
}
document.attachEvent('onclick', clicked); // IE
document.addEventListener('click', clicked, false); // Other browsers
function clicked(event) {
var target;
if (event.target) {target = event.target};
if (event.srcElement) {target = event.srcElement};
var index = clickableLinks.indexOf(target);
if(index != -1) {
alert("clicked at", index+1, "link");
}
}