/*跟踪所有链接的鼠标点击
* 调用方式:在需要监测的页面底部加入以下js代码:window.onload = trackLinks;或者直接调用该方法:trackLinks();
*/
function trackLinks(){
var Links = document.getElementsByTagName( 'A' );
for( var i = 0; i < Links.length; i++ )
{
Links[i].onclick = function()
{
trackClick(Links[i]);
}
}
}function trackClick(obj){
slert('aa');
}请教大家,怎样把trackClick(Links[i]);这里的Links[i]传到trackClick方法里,现在传进去是未定义,谢谢
var Links = aa||document.getElementsByTagName( 'A' );
for( var i = 0; i < Links.length; i++ )
{
Links[i].onclick = function()
{
trackClick(Links[i]);
}
}
}
var Links = document.getElementsByTagName( 'A' );
for( var i = 0; i < Links.length; i++ )
{
Links[i].onclick = function()
{
trackClick(this);
}
}
}function trackClick(obj){
slert('aa');
}
而且我觉得稍稍改动了一下, 效果更好。
请看:<html>
<head>
<title>link</title>
<style>
#container{
border: solid red 1px;
height: 400px;
width:
}
</style>
</head>
<script language="javascript"> </script>
<body>
<a href="#">aaaa</a><br />
<a href="#">bbbb</a><br />
<a href="#">cccc</a><br />
<a href="#">ddddd</a><br />
<a href="#">eeeee</a><br />
</body>
<script>
function trackLinks(){
var Links = document.getElementsByTagName( 'A' );
for( var i = 0; i < Links.length; i++ ){
Links[i].onclick = function(){
trackClick(this);
}
}
}
function trackClick(obj){
alert(obj.innerText);
}
trackLinks();
</script>
</html>
try{寻花问柳}catch(花柳病)....
很有意思!
哈哈
<head>
<title>link</title>
</head>
<script language="javascript"> </script>
<body>
<a href="#">aaaa</a><br /><a href="#">bbbb</a><br /><a href="#">cccc</a><br /><a href="#">ddddd</a><br /><a href="#">eeeee</a><br />
</body>
<script>
function trackLinks(){
var Links = document.getElementsByTagName('A');
for( var i = 0; i < Links.length; i++ ){
Links[i].onclick = function(){
alert(i);//这里返回的永远是5,
trackClick(Links[i]);
}
}
}
function trackClick(obj){
alert(obj);
}
trackLinks();
</script>
</html>上面 alert(i);//这里返回的永远是5,是因为闭包得原因。links[i]的onclick事件是内部函数。它被异步调用了,它被调用的时候产生闭包。这个闭包可以存取trackLinks()函数里面定义的变量。而当onclick发生的时候,i的值已经是5了。所以出现undefined.