#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. но вы хотите, чтобы щелчок был включен перед переключением слайда?