Перевести в спящий режим привязку события щелчка с помощью jQuery

#jquery #events #binding

#jquery #Мероприятия #привязка

Вопрос:

Я использую код, подобный следующему

 $(element).click(function() {
$(slider).slide();
});
  

Что я хочу сделать, так это деактивировать событие щелчка до завершения скольжения (или, точнее, завершения функции), чтобы пользователи не злоупотребляли этим. Как я могу это сделать?

Комментарии:

1. Как сказал @Dimitri, в jQuery [UI] нет никакой slide() анимации. Используете ли вы плагин?

2. Я использую свою собственную функцию; Но это не должно иметь значения. рассматривайте это как простую функцию, для выполнения которой требуется время.

3. На самом деле, это имеет значение — как сказал Дмитрий, большинство функций анимации jQuery имеют обратный вызов, который сообщает вам, когда анимация завершена. Это то, что он пытается использовать также в своем ответе. Не могли бы вы также опубликовать slide() код, пожалуйста?

Ответ №1:

http://jsfiddle.net/samccone/8u2KP/

Хитрость заключается в том, чтобы проверить, является ли

if (!$('#slider').is(':animated')) {//CODE HERE}

Ответ №2:

Что-то должно вызвать скольжение, поэтому деактивация не будет вариантом. Вместо этого вы могли бы начать скользить по щелчку мыши и выполнять любые другие операции, которые вам нужны, в функции обратного вызова slide ():

 $(element).click(function() {
    $(slider).slide(function(){ // Do something additional here});
});
  

Надеюсь, я правильно понял ваш вопрос.

P.S. Не совсем уверен, имеет ли jquery эффект slide (). В нем наверняка есть slideToggle, slideUp и slideDown, но я не слышал о slide

Попробуйте приведенный ниже код для ваших целей.

 $(element).click(function() {
    $(element).attr("disabled", "disabled");
    $(slider).slide(function(){ $(element).removeAttr("disabled"); });
});
  

Комментарии:

1. Я думаю, мой вопрос был ясен: я хочу отключить событие щелчка, чтобы пользователь не перемещал ползунок до последнего завершения скольжения 🙂

2. но вы хотите, чтобы щелчок был включен перед переключением слайда?