如何使用backbone.js跨多个视图实现通用功能

时间:2011-11-10 12:46:15

标签: view backbone.js extend

您好我正在尝试使用backbone.js在多个视图中实现自定义功能。例如,我需要让应用程序中的所有输入文本框在获得焦点时更改其视觉外观。 我想从Backbone.View.extend继承一个window.BaseView,然后让我所有的视图来扩展BaseView。 如果我朝着正确的方向,你能告诉我吗?你有其他建议吗?你有没有实现类似的东西?

2 个答案:

答案 0 :(得分:3)

我会将通用功能放在基础原型中并让所有视图扩展它,或者我会创建一个具有该功能的mixin对象并使用mixin扩展视图。

答案 1 :(得分:1)

我没有使用骨干进行类似的任务,因为不同的视图具有不同的元素,并且不止一次地绑定相同的焦点功能也是浪费。我要做的是:

//If document is the container for your application, else could be #myapplication and so on.
jQuery( document ).delegate( 'input[type="text"]', "focusin focusout",
    function(e){

        if( e.type == "focusin" ) {
        jQuery( this ).addClass("textbox-focused");
        }
        else {
        jQuery( this ).removeClass( "textbox-focused" );
        }

    }
);

或CSS(不确定浏览器支持):

input[type="text"]:focus {
background-color: blue;
}