2011-11-17 64 views
1

下面是代码:JQuery的代表在Internet Explorer 8中不能正常工作

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title>TITLE</title> 

<link type="text/css" href="jsutil/menubar/menu.css" rel="stylesheet"/> 
<link type="text/css" media="screen" href="jsutil/tablesorter/css/style.css" rel="stylesheet"/> 

<script type="text/javascript" src="js/jquery-1.7.min.js"></script> 
<script type="text/javascript" src="jsutil/menubar/menu.js"></script> 
<script type="text/javascript" src="jsutil/tablesorter/js/jquery.tablesorter.min.js"></script> 
<script type="text/javascript" src="jsutil/tablesorter/js/jquery.tablesorter.pager.js"></script> 

<script type="text/javascript"> 
$(document).ready(function(){ 

     $("#tabe").tablesorter(); 
     $("#tabe").width(600); 

     $("#tabe").delegate("td", "click", function() 
     { 
     var idCampanha = $(this).parent().find("td:first").html(); 
     //Seleciona campanha 
     alert("clicked in: "+idCampanha); 
     event.preventDefault(); 
     }); 


     $("#buscacamp").delegate("#bbcamp", "click", function() 
     { 
      alert("doing post"); 
      var jqxhr = $.post("php/slistar_campanhas.php", 
      {nome : $("#bcamp").val() }, 
      function(data) 
      { 
       $("#tabe > tbody").empty(); 
       for(var i=0;i<data.length;i++) 
       { 
        var obj = data[i]; 
        $("#tabe > tbody:last").append('<tr><td>'+obj.idcampanha+'</td><td>'+obj.nome+'</td></tr>'); 
       } 
       event.preventDefault(); 
      }, 
      "json" 
      ); 
      alert("post done"); 
      jqxhr.error(function(){ alert("Erro") }); 
      event.preventDefault(); 
     }); 


}); 
</script> 
</head> 
<body bgcolor="#3B3131"> 

    <div id="menu"> 
      ...JUST A WORKING MENU HERE 
    </div> 




    <div id="corpo" align="center"> 
     <h1 align="center" style="color:#F8F8F8">Selecionar Campanha</h1> 
     <form id="buscacamp"> 
      <label style="color:#F8F8F8" for="bcamp">Nome da campanha</label> 
      <input align="middle" size="35" type="text" name="bcamp" id="bcamp"/> 
      <br/> 
      <input type="submit" id="bbcamp" value="OK"/> 
     </form> 
     <table id="tabe" class="tablesorter" cellspacing="1"> 
       <thead> 
         <tr> 
           <th>Código da Campanha</th> 
           <th>Nome da Campanha</th> 
         </tr> 
       </thead> 
       <tfoot> 
         <tr> 
           <th>Código da Campanha</th> 
           <th>Nome da Campanha</th> 
         </tr> 
       </tfoot> 
       <tbody> 

       </tbody> 
     </table> 
     <h1 id="titulo" class="cor" style="color:#F8F8F8">Nova Solicitação</h1> 
     <form id="novasol"> 
      <label for="campanha" style="color:#F8F8F8">Campanha</label> 
      <input size="20" type="text" name="campanha" id="campanha" readonly/> 
      <br/><br/> 
      <label for="titulo" style="color:#F8F8F8">Título</label> 
      <input size="35" type="text" name="titulo" id="titulo"/> 
      <br/><br/> 
      <label for="descricao" style="color:#F8F8F8">Descrição</label> 
      <textarea rows="17" cols="55" id="descricao"></textarea> 
      <br/> 
      <label for="naudios" style="color:#F8F8F8">Número de áudios</label> 
      <input size="10" type="text" name="naudios" id="naudios"/> 
      <input type="submit" id="enviar" value="Enviar"/> 
     </form> 
    </div> 


</body> 
</html> 

时#bbcamp点击Chrome的输出: 1-警报后做

2-警报后做

3-将行添加到表中,当我点击它们时会显示另一个警报

IE 8输出被点击时#bbcamp: 1-警报做交

2-添加行表

3-警报后完成

4-擦除行和离开我用空表

我tryed使用click事件和它没有工作,要么... 我使用jQuery 1.7分钟

任何想法?

+0

您可能会考虑在警告停止执行时删除警报,并且可能会产生副作用。改用'console.log'。 – Esailija

回答

3

IE是JScript而不是JavaScript。

if(event.preventDefault){ 
    event.preventDefault(); 
} 
else{ 
    event.returnValue = false; 
} 
+0

jQuery已经为你做了这件事..你知道所以你不必考虑这个东西:)虽然在OP中他没有将jQuery事件传递给处理程序,所以这可能实际上工作。 – Esailija

+0

我不明白......... Alien Webguy的解决方案实际上工作....... – fredcrs

+2

是的,即使这不是正确的方式,我会给这个+1。您可以将事件参数添加到处理程序中,并且无需执行if检查即可工作。 – Esailija

相关问题