2013-04-15 2 views
0

Javascript MVC 컨트롤러를 사용하여 작동하지 않는 클릭 이벤트에 문제가 있습니다. 당신이 //bind events 보면Javascript MVC 컨트롤러 및 클릭 이벤트

TEST.Assignments.AssignmentsController = function (element) { 

var elements = { 
    activeAssignmentsPanel: $('#lpn-activeAssignments_Cont'), 
    assignmentViewLink: $("#lpn-activeAssignments_Cont table tr th a") 
}; 

var _this = this; 
var model = new TEST.Assignments.AssignmentModel(); 

this.buildAssignmentsList = function() { 
    var assignments = model.getActiveAssignmentsList({ 
     assignmentMode: "active", 
     mock: true, 
     success: function (data) { 
       dust.render("ActiveAssignmentsPanel", data, function(err, out) { 
       elements.activeAssignmentsPanel.append(out); 
      }); 
     } 
    }); 
}; 

this.getAssignmentDetails = function(assignmentId) { 
    console.log(assignmentId); 
}; 

//bind all events 
elements.assignmentViewLink.click(function (e) { 
    console.log("blah"); 
    console.log($(this).data("assignmentKey")); 
}); 


};//end assignments controller 


$(function() { 
    var assignmentsController = new TEST.Assignments.AssignmentsController(); 
    assignmentsController.buildAssignmentsList(); 
}); 

, 내가 일해야 거기에 클릭 기능을 가지고있다. 그러나 그렇지 않습니다. 생성자가 호출되고 요소가 올바르게 추적됩니다. 클릭 이벤트가 작동하지 않는 이유는 무엇입니까?

답변

0

successViewLink 요소가 생성되어 성공 콜백에 추가 된 것으로 가정합니다. 그렇다면 시퀀스 문제처럼 보입니다. click 이벤트를 바인딩하면 assignViewLink 요소가 아직 만들어지지 않으므로 click eventhandler가 연결되지 않습니다.

//bind all events 
// assignmentViewLink is empty [] 
elements.assignmentViewLink.click(function (e) { 
    console.log("blah"); 
    console.log($(this).data("assignmentKey")); 
}); 

이 확인 성공 콜백에 elements.assignmentViewLink (...)를 이동합니다.

+0

시도했지만 여전히 운이 없습니다. 요소는 click 이벤트에 도달하기 전에 정의됩니다. 나는 '라이브'클릭 이벤트를 시도해도 작동하지 않았습니다. – pfunc