У меня есть функция, которая добавляет горизонтальную прокрутку колесика мыши к выбранному div.Как удалить функцию, добавленную в элемент clicked, когда я нажимаю на нее?
Я хочу добавить эту функцию к элементу, когда я нажимаю на него, и удаляю его, когда я нажимаю его. Не уверен, как это сделать, хотя добавление функциональности работает нормально, но я не могу понять, как удалить эту функцию, если я выхожу за пределы div (так что даже если мышь находится внутри div, горизонтальная прокрутка не будет выполнена).
Вот мой JQuery:
$mainDiv.on('click', function() {
$(this).find($scrollableContainer).horizontal();
});
Функция отзывчивым для горизонтальной прокрутки (MouseWheel плагин):
$.fn.horizontal = function() {
$(this).mousewheel(function(e, delta) {
this.scrollLeft -= (delta * 40);
e.preventDefault();
});
};
Другими словами, то, что я пытаюсь достичь: если пользователь нажмет на $mainDiv
- добавьте horizontal()
в функцию $scrollableContainer
, но если пользователь затем выберет $mainDiv
, удалите horizontal()
функцию от $scrollableContainer
. Я попытался щелкнуть по телу, но это не помогло:
$('body').on('click', function() {
$(this).find($scrollableContainer).off();
});
Любой может помочь?
Что означает синтаксис 'this [on]'? – 1252748
@thomas - 'on' - это просто переданный аргумент, поэтому он действительно становится' this ['on'] 'или' this ['off'] 'в зависимости от того, что передается функции, а так как обозначение в скобках - это то же, что и точка ноты, это то же самое, что и 'this.on' или' this.off'. – adeneo
Спасибо. Есть ли особая причина, по которой вы выбрали синтаксис с квадратной скобкой над точкой? – 1252748