2011-02-18 14 views
4

我正在寻找一种方法来同时使用jQuery的自定义小部件(用于封装我的UI组件以及旨在用于外部DOM的内部状态和自定义事件)以及我的项目中美妙的“Backbone.js”框架。 我立即偶然发现的一个主要问题是,如果我将事件处理程序绑定到我的Widget的根元素(为了控制Widget的INTERNAL行为),并且随后将相同元素设置为Backbone视图的根元素,则主干会自动解除绑定ALL预先存在的事件(由我的小工具设置),并用View的“events”散列中指定的事件处理程序替换它们。不能Backbone.js和jQuery-UI的自定义Widget和平生活?

所以,如果我设置在我的小部件声明以下事件处理程序:

var el = this.element; 
el.bind("mouseenter", function (e) { el.css("backgroundImage", "url(over.png)").addClass("selected"); }).bind("mouseleave", function (e) { el.css("backgroundImage", "").removeClass("selected"); }); 

然后实例我Backbone.js的观点:

// "Participant"'s render() creates a DIV and initializes my widget on it 
var userView = new this.Views.Participant({ model: user }); 
$("#somediv").append(userView.render().el); 

我的鼠标事件处理程序停止响应! 有没有办法让骨干管理自己的处理程序而不影响其他人?

+1

是不是jQuery <1.5的限制?如果你用失败的对象升级到1.5,你就可以做我认为的事情。 http://blogs.sitepoint.com/2011/02/01/whats-new-in-jquery-1-5/ – Julien 2011-02-21 14:41:42

回答