我使用在js的某一函数中调用其他函数的方法来解决点击一次按钮触发多个函数这一问题,但是出现了错误,有的时候单击就可以执行两个函数,但有的时候必须得双击才可以将两个函数全部执行,如果单击不能将两个函数全部执行,再次点击会输出上次的执行结果,这种问题咋解决啊?
   
   还有类似的问题,点击调用函数时:onmousedown="mousedown(id)",结果输出问题和以上问题类似——输出的是上次的执行结果,请大侠们帮忙解决下,小女子感激不尽
   谢谢,谢谢,谢谢

解决方案 »

  1.   

    js中定义的函数如下:
    function submit_vlan($Oid)        
    {
    $vid=$("select#"+$Oid).val();//Vid表示选取的虚拟域的值$.get("results_center_2_submit.php",{VID:$vid,OID:$Oid});
    $("#vlan").hide();
    show_vm_inf();   //函数中嵌入的函数
    }
    show_vm_inf()函数是我在js文件中定义的函数,但不能每次都执行,请问是因为我的书写不规范还是其他什么原因?恳请解答
     
      

  2.   

    这里有个详细的解释
     http://www.w3help.org/zh-cn/causes/SD9011
    以及这个案例
    http://www.fengfly.com/plus/view-191243-1.html
      

  3.   

        你可以将前面的注释掉只留下show_vm_inf(); 这一条语句试试看。按理说异步请求是不会影响下面语句的执行,如果show_vm_inf方法里用到了异步请求的结果情况可能就很难说了,有可能执行show_vm_inf的时候异步请求还没有结束,而此时又正好又使用异步请求的结果,就会出现异常。
        建议在异步请求的回调函数中执行show_vm_inf();
    function submit_vlan($Oid) {
        $vid=$("select#"+$Oid).val();//Vid表示选取的虚拟域的值
        $.get("results_center_2_submit.php",{VID:$vid,OID:$Oid}, function() {
            $("#vlan").hide();
            show_vm_inf();   //函数中嵌入的函数
        });
    }