我需要在函数getClickedElement中获得clicked元素.我怎样才能做到这一点?
<html>
<head>
<script>
function getClickedElement () {
}
</script>
</head>
<body>
<a href="javascript:alert(getClickedElement())" id="test">click me!!!</a>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我只能设置href属性.我无法设置onclick事件,因为这些元素是由第三方lib生成的.
谢谢.
您无法在javascript:URL中获取单击的元素.事件已经完成,所以没有event.target(或window.event.srcElementIE),并且javascript:没有使用thisset 调用链接(所以你得到window).
当然,如果你知道有问题的链接是id="test"你可以做的document.getElementById('test'),但我怀疑这是你想要做的事情.
我只能设置href属性.我无法设置onclick事件,因为这些元素是由第三方lib生成的.
修复或删除lib.javascript:网址是完全不应该使用的恐怖.
你能<script>在页面的其他地方添加吗?如果是这样,您可以click在元素上注入事件处理程序,而无需任何额外的标记.例如.:
for (var i= document.links.length; i-->0;)
if (document.links[i] is one of the links you want to target)
document.links[i].onclick= someHandlerFunction;
function someHandlerFunction() {
alert(this);
return false;
}
Run Code Online (Sandbox Code Playgroud)
事实上,分配从JS(用on...或通过addEventListener与attachEvent回退用于IE)是反正加入事件处理程序的最佳实践方法.
小智 5
以下statckoverflow问题提供了一种在此处检测单击元素的方法
$(document).click(function(event) {
var text = $(event.target).text();
});
Run Code Online (Sandbox Code Playgroud)