2013-04-15 67 views
0

我遇到了点击事件不能使用Javascript MVC控制器的问题。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(); 
}); 

如果你看看//bind events,我有一个应该工作的点击功能。但事实并非如此。正在调用构造函数并正确地追踪元素。任何想法为什么点击事件不起作用?

回答

0

我假设assignViewLink元素被创建并附加在成功回调中。如果是这样,它看起来像一个序列问题。在绑定click事件时,assignmentViewLink元素尚未创建,因此,未附加单击事件处理程序。

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

要验证这一点,请将elements.assignmentViewLink(...)移入成功回调。

+0

尝试过,仍然没有运气。元素在到达click事件之前已定义。我甚至尝试过一个'实时'点击事件,但这也不起作用。 – pfunc

相关问题