2012-07-30 5 views
1

옥에서 간단한 경고 이벤트를 만들려고하고 있지만 어떻게 든 작동하지 않습니다. 문제가 무엇인지 모릅니다. 아마도 여러분은 그것을 찾을 수 있을까요?옥에서 onclick 이벤트

코드 : PS : 당신이 socket.io 코드

html 
head 
script(src='jquery-1.7.1.js') 
    script(src='/socket.io/socket.io.js') 
script 
    var socket = io.connect('http://localhost:3002/add_users'); 
    socket.on("update", function(message) { 
    console.log("update: ", message) 
    }); 
    $(function() { 
    $("button").click(function() { 
    alert("hej"); 
    }); 
    }); 
body 
.container 
.content 
    header.page-header 
     h1 Welcome 
    .row 

      form(action='/', method='post') 
       fieldset 
         label(for="name") Namn 
          input(type="text", size="30", name="name", required="required") 
          button Save 
      ul 
       li <a href="/users">User list</a> 
+0

렌더링 된 페이지도 게시 할 수 있습니까? – Fresheyeball

답변

0

나는 옥으로 자신을 경험이 많지 않아 무시하지만, 잘못 들여 당신의 script(src='/socket.io/socket.io.js')되지 수 있습니까?

그렇다면 socket.io.js이 올바르게로드되지 않을 것이라고 생각합니다. 그리고 올바르게로드되지 않으면 jQuery DOMReady 리스너를 바인딩하기 전에 자바 스크립트 실행이 io.connect에서 중단됩니다.

+0

내가 언급했듯이 socket.io 코드와 아무런 관련이 없습니다. 단순한 경고 메시지가 필요합니다. 심지어 나는 socket.io 코드를 삭제하여 단일 팝업 알림을 표시하지 않습니다. – nihulus

+0

@nihulus : 관련없는 코드라도 문제가있는 경우 실행을 중단시킬 수 있습니다. 렌더링 된 결과를 게시 하시겠습니까? –

+0

@nihulus David의 답변을 확장하려면 ... 생성 된 출력을 확인하고 socket.io 스크립트가''태그 내에로드되는지 확인하십시오. 다른 스크립트 태그보다 더 들여 쓰면 안됩니다. 또한, 스크립트를로드하기 전에 실행할 수 있기 때문에 jquery 준비 함수 또는 body 태그 뒤에 socket.io 물건을 이동하고 js 오류가'.click' 함수가 실행되는 것을 막을 수 있습니다. –

0

DOM을로드하기 전에 $("button").click() 코드가 실행됩니다. 명시 적으로 함수를 $.ready()으로 전달해야합니다.

추신 : 나는 함수를 jQuery (당신이하는 일)에 전달하는 것이 $.ready()과 같아야한다는 것을 알고 있지만 이전에는 같은 종류의 문제가있었습니다.

+2

'$ (function()'은 문서 준비와 같음 – Fresheyeball

+0

'$()'함수에 함수를 전달하는 것이 jquery 1.4 이후'$ .ready()'에 대한 지름길이었다고 생각합니다. –