/*跟踪所有链接的鼠标点击
 * 调用方式:在需要监测的页面底部加入以下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方法里,现在传进去是未定义,谢谢

解决方案 »

  1.   

    function trackLinks(aa){
        var Links = aa||document.getElementsByTagName( 'A' );
        for( var i = 0; i < Links.length; i++ )
       {
            Links[i].onclick = function()
                {
                     trackClick(Links[i]);
                }
        }    
            }
      

  2.   

    function trackLinks(){
        var Links = document.getElementsByTagName( 'A' );
        for( var i = 0; i < Links.length; i++ )
       {
            Links[i].onclick = function()
                {
                     trackClick(this);
                }
        }    
            }function trackClick(obj){
        slert('aa');
    }
      

  3.   

    我测试你的代码是好的。
    而且我觉得稍稍改动了一下, 效果更好。
    请看:<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>
      

  4.   

    KFC先生的
    try{寻花问柳}catch(花柳病)....
    很有意思!
    哈哈
      

  5.   

    我跟你说一下原因吧,<html>
    <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.