2014-03-03 3 views
0

를 인식하지 못하는 내가 쿠분투 리눅스 시스템에서 파이어 폭스 27.0.1 및 크롬 30.0.1599.114에서 다음 코드를 실행하려고하고, 아무 일도 발생하지 않습니다.브라우저는 자바 스크립트/jQuery 코드

HTML 페이지는 스프링 MVC 프레임 워크를 기반으로 웹 응용 프로그램에서 일부이며, 폴더의 WEB-INF/JSP에 배치했다. 누군가 아래의 코드에서 오류를 발견 할 수 있습니까?

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 
    <title>HorarioLivre</title> 

    <script src="http://code.jquery.com/jquery-2.1.0.min.js"></script> 
    <script> 
    $('a').click(function() { 
     alert("clicou em um link"); 
    }); 
    </script> 

    <link rel="stylesheet" href="css/style-main.css"> 
    <link rel="stylesheet" href="css/style-popup.css"> 
</head> 
<body> 
    <header> 
    <div class="container"> 
     <h1><a href="#">HorarioLivre</a></h1> 
     <nav> 
     <ul> 
      <li><a href="listagem_evento.html" class="icon evento">Eventos</a></li> 
      <li><a href="cadastra_horario.html" class="icon horario">Cadastrar Horarios</a></li> 
      <li><a href="listagem_horario.html" class="icon horario">Listar Horarios</a></li> 
      <li><a href="listagem_usuario.html" class="icon usuario">Usuarios</a></li> 
      <li><a href="#">${usuario.nome}</a> 
      <ul> 
       <li><a href="usuario_perfil.html" class="icon perfil">Perfil</a></li> 
       <li><a href="usuario_config.html" class="icon settings">Configura&ccedil;&otilde;es</a></li> 
       <li><a href="#">Logout</a></li> 
      </ul> 
      </li> 
     </ul> 
     </nav> 
    </div> 
    </header> 
    <div id="results"> 
     <a href="#" id="close">Fechar</a> 
     <div id="content"></div> 
    </div> 
</body> 
</html> 

답변

1

있습니다 (스크립트가 head에서 실행되며 모든 a 요소가 몸에 존재하기 때문에 그들 모두 영) 스크립트가 실행 시간에 존재하는 모든 a 요소를 선택하고 그들에게 물건을 다하고 있습니다.

는 단지 </body> 전에 스크립트를 이동하거나 함수를 만들 준비가 DOM에서 실행

.

jQuery(function() { 
    $('a').click(function() { 
     alert("clicou em um link"); 
    }); 
}); 

... 사용자가 조작 할 수있는 실제 요소는 a입니다.

1

당신은 당신의 jQuery 코드를 실행하기 전에 당신의 모든 요소가 제대로 DOM에 추가를 만들기 위해 DOM 준비 처리기 $(document).ready(function() {....}) 이하 형태 $(function() {.... }) 내부 코드를 포장해야합니다.

$(function() { 
    $('a').click(function() { 
     alert("clicou em um link"); 
    }); 
}); 
3

당신은 당신의 "오류"무슨 말을하지 않습니다,하지만 당신의 선택이 실행되는 시간으로, 요소가 아직 DOM에 준비가되지 않은, 그래서 내 생각 엔 당신은, 문서 준비 핸들러를 남겨 두었다된다.

$(function() { 
    $('a').click(function() { 
     alert("clicou em um link"); 
    }); 
});