//------------------------------table----------------------------
 <table id="SignChoose" style="width:100%" >
    <tr>
        <td><input id="btnSignIn" type="submit" value="" class="loginbtn" style="background-image: url(PowerOn.png)" onclick="StartSign(true);" /></td>
        <td><input id="btnSignOut" type="submit" value="" class="loginbtn" style="background-image: url(PowerOff.png)" onclick="StartSign(false);" /></td>
    </tr>
    <tr align="center" style="font-family:幼圆;font-size:50px">
        <td>签到</td>
        <td>签退</td>
    </tr>
</table>
//------------------------------StartSign----------------------------
function StartSign(isSignIn) {
        $("#SignChoose").hide();
     
        Voice.SpeakText("");
        Voice.SpeakText("请您将手指放于指纹仪上");
        SignAction(isSignIn);
        $("#SignChoose").show();
    } 问题是table 在IE8中无法实现隐藏(hide())
//$("#SignChoose").hide(); IE8 无法隐藏

解决方案 »

  1.   

    你的里面是不是有js错误,Voice在哪儿定义的
      

  2.   

    jquery除了最新的版本不再兼容IE浏览器,其他版本还是兼容IE浏览器的,所以你这个问题首先要知道你是不是使用最新的jquery和js是不是有语法错误
      

  3.   

    你把$("#SignChoose").show();注释掉
      

  4.   

    function StartSign(isSignIn) {
             $("#SignChoose").hide();//先隐藏 
          
             Voice.SpeakText("");//
             Voice.SpeakText("请您将手指放于指纹仪上");//报出语音
             SignAction(isSignIn);//按指纹
             $("#SignChoose").show();//按指纹后显示id=SignChoose 的table
         }
     
    //$("#SignChoose").show();注释掉  不是不显示了吗?
      

  5.   

    function StartSign(isSignIn) {
             $("#SignChoose").hide();//先隐藏 
          
             Voice.SpeakText("");//
             Voice.SpeakText("请您将手指放于指纹仪上");//报出语音
             SignAction(isSignIn);//按指纹
             $("#SignChoose").show();//按指纹后显示id=SignChoose 的table
         }
    我貌似也看出眉目了
    你在一个函数里面先隐藏又显示,肯定你只会看到显示的结果啊,你把后面那个show注释掉先看一下是否IE兼容hide
      

  6.   

    你的那个是鼠标点击的时候hide,鼠标移开的时候show吗
      

  7.   

    回8楼 
    1.是按照顺序的逻辑 来显示的 ,很郁闷的是,在我本机的IE8可以正常显示,到其他的机器IE8显示不了隐藏,2.如果说逻辑有问题,怎么改才能更好了,(按照标注的功能)3.是按过指纹前,hide ,按指纹后 ,show 
      

  8.   

    那就
    $(function(){
       $("#btnSignIn").mousedown(function(){
         $("#SignChoose").hide();
       }).mouseup(function(){
     $("#SignChoose").show();
    });
    });
    其他的自己处理。可能不是鼠标事件,看你是要响应什么事件
      

  9.   

    回10 楼$(function(){});在IE8下和其他的浏览器 ,hide 和 show有影响吗 
      

  10.   

    To 10楼:  <td><input id="btnSignIn" type="submit" value="" class="loginbtn" style="background-image: url(PowerOn.png)" onclick="StartSign(true);" /></td>///onclick="StartSign(true);" 
    和 function StartSign(isSignIn) 中的 isSignIn和true 有什么联系??
      

  11.   

    $(function(){});这个函数相当于$(document).ready(function(){ })习惯了缩写,不好意思,jquery低于最新版本都兼容ie和其他主流浏览器的,之所以这样处理是因为你鼠标点在上面的时候才让他hide,然后鼠标释放才让它显示吧,或者可以这样给你处理
    $(function(){
       $("#btnSignIn").click(function(){
         $("#SignChoose").hide();
            Voice.SpeakText("");//
             Voice.SpeakText("请您将手指放于指纹仪上");//报出语音
             SignAction(true);//按指纹
       }).mouseleave(function(){
     $("#SignChoose").show();
    });
    });
    我不知道你这个是用到页面上还是用到pad这样的小型设备上面,可能是手点击事件,不晓得手点击事件和手移开事件和这个是否类似,总之这个流程应该是手点击的时候才hide,手移开的时候才show,不能把他们同时放到一个函数里面处理,程序执行的速度是非常快的,一般不容易看到隐藏效果就直接显示了,这样写你的按钮也可以不用绑定onclick事件了,当然还有更好的处理方式
      

  12.   

    是每次都这样的呢,还是只是偶发?或者你把hide()和show()分开写
      

  13.   

    如果你的SignAction()有异步执行的话,那么是不会有效果的,请在异步执行结束之后再show
      

  14.   


    TO 14 楼:是按照顺序的逻辑 来显示的 ,很郁闷的是,在我本机的IE8可以正常显示,到其他的机器IE8显示不了隐藏,一直是这样的,分开写?给点提示?
      

  15.   

    To;15楼
    我显示的效果是先隐藏 后显示  ,隐藏在   SignAction()前,所以不会有异步执行的情况吧?
    function StartSign(isSignIn) {
              $("#SignChoose").hide();//先隐藏 
           
              Voice.SpeakText("");//
              Voice.SpeakText("请您将手指放于指纹仪上");//报出语音
              SignAction(isSignIn);//按指纹
              $("#SignChoose").show();//按指纹后显示id=SignChoose 的table
          }
      

  16.   

    如果SignAction()中有setTimeOut、ajax回调等,你必须放在里面去处理show
      

  17.   

            Voice.SpeakText("");
             Voice.SpeakText("请您将手指放于指纹仪上");
    我觉得问题出在这两句上,改成innerHTML试试吧
      

  18.   

    TO 13/19楼正解,function StartSign(isSign)
    {
      $("#SignChoose").hide("slow",function(){
           voice.Speaktext("");
           voice.Speaktext("请您将手指放于指纹仪上");
            SignAction(isSignIn);
         });  $("#SignChoose").show("slow");
    }
    结贴,给分,呵呵!