Я динамически создаю объекты, которые создают представление и связывают события с построенным представлением при нажатии. Однако событие click всегда привязывается к последнему созданному объекту. Я хочу иметь одно и то же событие click для каждого объекта, но данные, которые я передаю новому классу, уникальны для каждого экземпляра.Jquery Multiple Click Events
Создание объекта:
$.each(data,function(i,json)
{
var channelWrapper = new ChannelDisplayView(that.channelContainer, json);
that.channelContainer.append(channelWrapper.createView());
});
ChannelDisplayView.js
function ChannelDisplayView(parent, data){
this.parent = parent;
this.data = data;
}
ChannelDisplayView.prototype.createView = function(){
this.channelWrapper = $("<div/>").addClass("channelDisplay").attr("id", this.data.fullName);
this.channelTitle = $("<div/>").addClass("channelTitle").html(this.data.fullName);
this.channelSource = $("<div/>").addClass("sourceType").html(this.data.sourceType);
this.channelWrapper.append(this.channelTitle);
this.channelWrapper.append(this.channelSource);
that = this;
this.channelWrapper.unbind().on("click",function(event){
ControllersSingleton.getInstance().getProgramController().setupPage(that.data);
});
return this.channelWrapper;
}
Как вы можете видеть, каждый класс будет проводить свои собственные данные в формате JSON, и это должно использоваться, чтобы перейти к экземпляру другого контроллера, если нажимается «div». Данные, отправляемые независимо от того, какой div я нажимаю, всегда из последнего созданного объекта.
Я пропустил что-то очевидное здесь?
Любые шансы jsFiddle или jsBin? – noitse