Подтвердить что ты не робот

Магистральные события

Привет, мне было интересно, как я обрабатываю состояние удаления hover с помощью магистрали и js

в настоящее время у меня

events: {
  "hover .info"   : "hover"
},

hover:(e) =>
  $(e.currentTarget).css("background-color", "#333")

Мне было интересно, как бы я обработал событие, когда я удаляю мышь от элемента с классом .info

Если я делаю стандартный кофе script внутри, чтобы сделать это внутри обработчика hover: event, для его работы требуется 2 зависания.

Я в основном хочу подражать

$(".info").hover(
    function() {
       $(this).css("background-color", "#333")
    },
    function() {
       $(this).css("background-color", "#F3F")
    },
});

Спасибо

4b9b3361

Ответ 1

Существует версия hover(), которая выполняет одну функцию обратного вызова:

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

Это версия hover, которая будет использоваться Backbone. Таким образом, вы можете справиться с этим с помощью toggleClass и нескольких классов CSS вместо прямого взаимодействия с css:

hover:(e) =>
  $(e.currentTarget).toggleClass('dark-gray')

По умолчанию цвет элемента #F3F будет установлен по элементу по умолчанию, и у вас будет:

.dark-gray {
  background-color: #333
}

в ваших таблицах стилей. Если вы не можете по какой-либо причине использовать toggleClass, вам придется привязываться к mouseenter и mouseleave индивидуально.

Ответ 2

В jQuery docs:

Вызов $(selector).hover(handlerIn, handlerOut) является сокращением для:

$(selector).mouseenter(handlerIn).mouseleave(handlerOut);

Итак, я думаю, что лучший способ справиться с этим с Backbone - это просто установить два события (извините, я не верю в CoffeeScript):

events: {
  "mouseenter .info"   : "hoverOn",
  "mouseleave .info"   : "hoverOff"
},

hoverOn: function(e) { ... },
hoverOff: function(e) { ... }

В качестве альтернативы вы можете использовать синтаксис одиночного аргумента, который принимает одну функцию и вызывает ее как внутри, так и снаружи - это хорошо работает с .toggle() и toggleClass().

Ответ 3

В этом точном примере, однако, вы должны действительно использовать css: hover pseudo class вместо jquery.

Ответ 4

Если это не ссылка действия, вы можете следовать css: pointer-events:none