Backbone.js — привязка событий к документу из представления

Можно ли привязать обработчики событий (например, при наведении мыши) к документу из представления?

Я хочу сделать что-то вроде этого:

var someView = Backbone.View.extend({
    el: "#someDIV",

    initialize: function (options) { /* ... */ },

    events: {
        "mousedown" : "mousedownHandler", // on #someDIV
        "mouseup" : "mouseupHandler" // this should be on document (global mouseup)
    },

    mousedownHandler: function (e) { /* ... */ },
    mouseupHandler: function (e) { /* ... */ }
});

Возможно ли это, или мне нужно прибегать к отдельной привязке событий jQuery при инициализации? Или, если есть лучший способ сделать это, это тоже сработает!

Спасибо!


person lakenen    schedule 03.11.2011    source источник


Ответы (1)


Если слушатель, которого вы хотите добавить, логически принадлежит этому представлению, вам нужно выполнить обычную привязку jQuery.

Другой вариант - иметь отдельное представление с el: 'body', на котором можно определить обработчик mouseup, и это будет работать с обычным объявлением событий. Но в вашем случае я думаю, что лучше держать обработчики mouseup и mousedown в одном и том же представлении, поскольку они тесно связаны.

person dira    schedule 03.11.2011