2011-12-28 3 views
0

nodejs를 사용하고 있습니다. 그리고 자바 스크립트 파일에서 다음과 같은 무언가를 호출하면 :; t 작업부분 뷰 렌더링. Javascript 파일은 렌더링 된 뷰에 적용되지 않습니까?

$("#right").append(resp); 

그때 datatables 돈에 정의 된 데이터 테이블 만 (더블 클릭과 같은) 모든 기능으로 초기화합니다. 콘솔에 doubleclick 코드를 복사하면 작동합니다.

내가 뭘 잘못하고 있니?

편집 : 추가 정보 그래서 지금 내가 가진 것은 사용자가 로그인 할 때 ajax를 사용하여 사이드 바에 재생 목록을 표시하는 것입니다. 재생 목록을 클릭하면 해당 재생 목록이로드됩니다. 그러나 페이지가 완전히 다시로드되지 않는 한 application.js의 코드 (초기에로드 됨)는 재생 목록에 적용되지 않습니다.

$.ajax({ 
    type: "POST", 
    url: '/login', 
    data: { email: email, password: pass }, 
    success: function(result) { 
    $.get('/toop', function(data) { 
    console.log(data); 
    if (data == "fail") { 
     alert("error"); 
    } else { 
    $("#header").html(data); 
    $(document).trigger('close.facebox'); 
    $.get('/getPlaylists' , function(playlists) { 
    $("#left").html(playlists); 
    }); 

이 단지 사용자의 재생 목록을 가져오고 사이드 바에서 그들을두고 : 여기

내가 가진 몇 가지 코드입니다. 이제 application.js 파일에 내가 가지고 :

$(".user-playlist").click(function(e) { 
    var playlist = e.target; 
    var id = $(playlist).attr('data-playlist'); 

. . . .

그러나 페이지를 완전히 새로 고침하면 재생 목록의 클릭 만 감지합니다. 그냥 아약스를 사용하여 그것을 렌더링. 새보기를 가져올 때 {layout : false}하고 있습니다. application.js를 다시로드해야합니까? 나는 노드 (그리고 웹 개발자)에 익숙하지 않다. 감사합니다

+3

더 많은 정보를 제공하는 것은 어떻습니까? 데이터 테이블은 무엇을 의미합니까? 코드를 더 많이 보여줄 수 있습니까? – alessioalex

답변

1

click 이벤트 핸들러는 $(".user-playlist")이 호출 될 때 .user-playlist과 일치하는 요소 세트에만 적용됩니다. 웹 관리자를 엽니 다 (또는 방화범), 사람들은있는 요소를 확인하고 자바 스크립트 당신이 게시물에 포함 니펫을 바로 전에이 줄을 추가하려면 : 재생 목록입니다

console.log($(".user-playlist")) 

당신은 페이지의 빈 배열을 볼 수 Ajax에서로드되고 전체 새로 고침 후 페이지에 적어도 하나의 항목이 있습니다.

아직 페이지에없는 요소에 대해서도 이벤트 처리기를 첨부하려면 on 메서드에 대한 설명서 (특히 live 메서드에 속한 기능)를 읽으십시오.

+0

신난다 !! 감사. 하지만 on을 사용하면 작동하지 않는다고 error 객체는 아무런 방법이 없다고 말했습니다. 그러나 라이브는 완벽하게 작동하는 것 같습니다. 정확히 필요한 것! – Jonovono