Как отвергнуть ранее набор обработчик событий jQuery?

В моем коде установлен обработчик событий для элемента, который изменяет CSS высоту того элемента на 100 пкс. В где-то в другом месте, я хочу, чтобы различный обработчик событий управлялся, если определенные условия встречаются, который должен отвергнуть предыдущий обработчик событий и изменить его высоту на 200 пкс.

Есть ли способ сделать это или очистить весь ранее обработчики событий набора для элемента?

5
Вы могли проверить условия в обработчике событий, нет?
добавлено автор Salman A, источник
Вы могли проверить условия в обработчике событий, нет?
добавлено автор Salman A, источник

5 ответы

Да, просто используйте .off (), как

$('selector').off('eventname')
14
добавлено
Хороший! Хорошая работа ха-ха
добавлено автор Jonjie, источник

Да, просто используйте .off (), как

$('selector').off('eventname')
14
добавлено
Хороший! Хорошая работа ха-ха
добавлено автор Jonjie, источник

Это - что-то вроде хакерского проникновения, но оно кажется, что вы пытаетесь взломать на чужом коде без способности изменить его непосредственно так, чтобы мог быть тем, к чему необходимо обратиться.

Если просто необходимо назвать что-то после их document.ready() , и вы не управляете заказом document.ready() заявления, то можно поместить некоторый код в короткий перерыв как эта внутренняя часть document.ready укладчик:

$(document).ready(function() {
    setTimeout(function() {
        $('selector').off('eventname').on(your event handler here);
    }, 1);
});

setTimeout() будет бежать за всем document.ready (), укладчики бежали.

3
добавлено
@ClickUpvote: можно сделать то использование чего-то вроде этого: jsfiddle.net/zerkms/7w5Xk исходная ссылка jQuery: github.com/jquery/jquery/blob/master/src/event.js#L20
добавлено автор zerkms, источник
Есть ли любой код, чтобы проверить, были ли какие-либо события установлены для данного элемента или нет. Таким образом, я мог сделать: , если ($ (ele) .hasHandler (' click')) / *clear event/ * еще setTimeout (это, 1000); , чтобы удостовериться, что событие было установлено, прежде чем моя функция вызвана
добавлено автор Click Upvote, источник
Право, но если бы я мог бы проверить перед удалением, которое работало бы более достоверно, например, проверка, если событие установлено, если да, удаляет & установило новый, в противном случае проверяет снова 1 секунду спустя, повторяется
добавлено автор Click Upvote, источник
можно ли просто ответить на вопрос?:)
добавлено автор Click Upvote, источник
@ClickUpvote - there' s никакая потребность проверить сначала. Просто удалите любых ранее прикладных укладчиков, затем приложите свое собственное. Если не было ни одного, удаление ничего просто не сделает. К вашему сведению это ТОЛЬКО работает на примененные обработчики событий jQuery, не равнину, JavaScript применил укладчиков.
добавлено автор jfriend00, источник
Если другой код также не устанавливает обработчик событий на таймере (в этом случае теперь you' ре, действительно делающее хакерское проникновение), нет никакой потребности в многократных проверках/таймерах. Если it' s набор на document.ready, тогда ваш набор таймера от document.ready будет ПОСЛЕ всех document.ready укладчиков.
добавлено автор jfriend00, источник
@ClickUpvote - Я don' t знают ответ. Где-нибудь похороненный в jQuery способ достигнуть другие обработчики событий jQuery, но меня don' t знают это лично. Необходимо будет найти его. Моя рекомендация состоит в том, что это не необходимо и есть, вероятно, намного более чистый способ решить проблему, но you' ve, не раскрытому большая часть проблемы и уже отобранный лучший ответ так, по-видимому, ваш оригинальный вопрос, уже отвечают на ваше удовлетворение.
добавлено автор jfriend00, источник

Иначе:

$(window).on('load', function() {
   $('selector').off('eventname').on(your event handler here);
});

Груз выполняется после готового документа

1
добавлено

Иначе:

$(window).on('load', function() {
   $('selector').off('eventname').on(your event handler here);
});

Груз выполняется после готового документа

1
добавлено
JavaScript Jobs — чат
JavaScript Jobs — чат
8 336 участник(ов)

JavaScript Jobs — чат для поиска работы и людей Правила оформления: https://teletype.in/@telegram-ru/r1WQe5F1m См. также: @mobile_jobs, @devops_jobs, @nodejs_jobs, @react_js, @angular_ru, @js_ru

JavaScript.ru
JavaScript.ru
7 932 участник(ов)

Сообщество сайта JavaScript.ru в Slack.

pro.js
pro.js
4 675 участник(ов)

Про JavaScript и NodeJS Invite: https://t.me/joinchat/Be4rsT5Rsgq30DHutjxXgA Правила: http://telegra.ph/ru-chat-rules-06-19 Вакансии только с ЗП, не чаще раза в неделю.

Верстка сайтов HTML/CSS/JS/PHP
Верстка сайтов HTML/CSS/JS/PHP
3 439 участник(ов)

Правила группы: напишите !rules в чате. Группа Вк: vk.com/web_structure Freelancer: @web_fl Веб Дизайн: @dev_design Маркетолог: @topmarkening Автор: @M_Boroda

JavaScript — русскоговорящее сообщество
JavaScript — русскоговорящее сообщество
3 269 участник(ов)

Рекомендуем сразу отключить уведомления Правила: https://rudevs.network/ByaMH6un7 См. также: @js_noobs_ru, @nodejs_ru, @typescript_ru, @react_js, @electron_ru Вакансии и поиск работы: @javascript_jobs

JavaScript Noobs — сообщество новичков
JavaScript Noobs — сообщество новичков
2 484 участник(ов)

Чат для новичков

javascript_ru
javascript_ru
915 участник(ов)

Сообщество любителей самого популярного языка программирования в мире. Чат основан в 2009 году. Логи: https://goo.gl/9EOeM7 Поддержка бота: @chat_linker (ссылка на репу внутри) Вам будут интересны @frontend_ru и @css_ru

jsChat
jsChat
603 участник(ов)

Чат посвященный программированию на языке javaScript Перед отправкой ссылки на Ваш контент посоветуйтесь с админом Все ссылки удаляются ботом автоматически

JavaScript for Zombies Chat
JavaScript for Zombies Chat
492 участник(ов)

Чат про JavaScript для настоящих zombie! Вход строго по приглашениям! Ссылка для строгих приглашений: https://t.me/joinchat/AAMBHz3Uyr0tuZ7VaB029g

All That JS
All That JS
417 участник(ов)

JS на русском