Решения здесь работают отлично , когда нужно управлять только одним элементом . Однако, если есть несколько элементов, проблема намного сложнее. Трюки с e.stopPropagation () и всеми остальными не будут работать.
Я придумал решение , и, возможно, это не так просто, но лучше, чем ничего. Посмотрите:
$view.on("click", function(e) {
if(model.isActivated()) return;
var watchUnclick = function() {
rootView.one("mouseleave", function() {
$(document).one("click", function() {
model.deactivate();
});
rootView.one("mouseenter", function() {
watchUnclick();
});
});
};
watchUnclick();
model.activate();
});