没有就是没有啊,只能根据你的需要用别的方法来代替onfocus可以使用onclick代替——严格的说onclick是不能代替onfocus的吧,因为要得到焦点不一定非要去点击它,比如还可以用键盘上的Tab键——当然这个楼主肯定也知道,楼主说“onfocus可以使用onclick代替”是因为你的需求是在点击的时候执行某些操作就可以了onblur的意思是失去焦点,不知道换成onMouseOut能不能满足需求?
如果不可以的话,就根据楼主说的onclick代替onfocus原则,当鼠标点完<li></li>之后,如果再点别的地方,就执行指定的操作。可以定义一个全局变量flag,初始值为false,监听鼠标的点击动作,如果鼠标点<li></li>则flag变为true,如果点的不是<li></li>则把flag的值设置为false。然后来一个判断,如果flag为false则执行本来想在onblur里面执行的函数,如果flag为true,则不执行

解决方案 »

  1.   

    不知道我上面说的楼主能看明白不? 还是写段代码吧:(可以实现通过鼠标点击而“得到”和“失去”焦点后执行需要的操作)
    <script language="javascript">
    var flag=false;
    function aa(){
    if(flag==false){
    alert("“得到焦点”");
    flag=true;
    }
    }
    function bb(){
    alert("blur");
    }
    function document.onclick(){
        if(document.getElementById("lili") != window.event.srcElement){
    if(flag==true){
    alert("“失去焦点”");
    flag=false;
    }
    }
    }
    </script>
    <body>
    <li id="lili" onClick="aa();">sdf</li>
    </body>
    我只是大概测试了一下,可能还有问题吧……呵呵
      

  2.   

    上面的function bb()是多余的,下面加了点注释:<script language="javascript">
    var flag=false; //设置焦点标记
    function aa(){
    if(flag==false){ //如果之前的状态是没有焦点,
    alert("“得到焦点”"); //则产生得到焦点的效果
    flag=true;
    }
    }function document.onclick(){ //监听鼠标点击的事件(这个函数是从梅老大的日历里面搬过来的,现学现卖,呵呵)
        if(document.getElementById("lili") != window.event.srcElement){ //如果当前鼠标点击的正是<li>
    if(flag==true){ //并且之前状态为得到焦点,
    alert("“失去焦点”"); //则产生失去焦点的效果
    flag=false;
    }
    }
    }
    </script>
    <body>
    <li id="lili" onClick="aa();">sdf</li>
    </body>
      

  3.   

    谢谢了,对我很有用, 我是在做一个xml列表中的防文件夹功能,目前还真碰到少问题呢,还在制作中,有兴趣看看http://www.qqqcn.com/art_11/rss.xml