先上代码:<html>
<body bgcolor="#FFFFFF">
<div><a href="http://www.baidu.com" onClick="a();return false;">百度!</a></div>//return false在这里
</body>
<script type="text/javascript">
function a()
{
document.body.bgColor="#669900";
}
</script>
</html>上面的代码 可以使onclick 无效  同时可以实现背景颜色跳转的效果
<html>
<body bgcolor="#FFFFFF">
<div><a href="http://www.baidu.com" onClick="a()">百度!</a></div>
</body>
<script type="text/javascript">
function a()
{
document.body.bgColor="#669900";
return false; //放在这里  无法实现onclick的无效   
}
</script>
</html>小弟想问的是 
onclick  代码走动的顺序是怎样的
还有原理啦

解决方案 »

  1.   

    放在里面要 onClick="return a()" 关键是用return false取消浏览器的默认事件处理函数 <html>
    <body bgcolor="#FFFFFF">
    <div><a href="http://www.baidu.com" onClick="return a()">百度!</a></div>
    </body>
    <script type="text/javascript">
    function a()
    {
        document.body.bgColor="#669900";
        return false;   
    }
    </script>
    </html>
      

  2.   

    也可以这样来实现
    <html>
    <body bgcolor="#FFFFFF">
    <div><a href="http://www.baidu.com" onClick="a()">百度!</a></div>
    </body>
    <script type="text/javascript">
    function a()
    {
        document.body.bgColor="#669900";
        event.returnValue=false;//将事件的返回值设为false    
    }
    </script>
    </html>
      

  3.   

    在事件函数中用return false相当于同时调用了event.stopPropagation()和event.preventDefault()事件的默认行为就不会被执行也不就会继续冒泡向上传递了
      

  4.   

    刚才试了上面的代码
    return a()确实可行
    调用event.returnValue=false;
    貌似不行
    感谢大家的解惑哈
    学习了
      

  5.   

    这个是刚才改写的代码:<html>
    <script type="text/javascript">
    window.onload=function()
    {
        var ol=document.getElementsByTagName("ol")[0];
    for(i=0;i<6;i++)
    {
    var li=document.createElement("li");
    color=Math.ceil(Math.random()*1000000+1);
    li.title="#"+color;
    li.innerHTML="<a href='#' onClick='return a(this.parentNode)'>'这个是第"+i+"个随机得出的颜色'</a>";
    li.onclick="return a(this)";
    ol.appendChild(li);
    }
    }
    function a(obj)
    {
    document.body.bgColor=obj.title;
    return false;
    }
    </script>
    <body bgcolor="#FFFFFF">
    <ol>
    </ol>
    </body>
    </html>
      

  6.   

    3楼的代码在IE、chrome和opera下是有效的,不适用于firefox。兼容的代码可以这么写:<body bgcolor="#FFFFFF">
    <div><a href="http://www.baidu.com" onClick="document.body.bgColor='#669900';
    if (arguments[0]&&arguments[0].preventDefault) {
    arguments[0].preventDefault();
    } else {
    window.event.returnValue = false;
    }">百度!</a></div>
    </body>这么写也是比较无奈,在js里定义事件会比较好看。