#jquery #triggers
#jquery #запускает
Вопрос:
Я пытаюсь создать функцию в jQuery, которая запускает разные функции при каждом нажатии. (на одной и той же кнопке) — Но максимум 4 разных нажатия.
Первый щелчок: функция 1, второй щелчок: функция 2, Третий щелчок: функция 3, четыре и последний щелчок: функция 4
Это для поворота изображения. (Я пытался что-то запустить)http://pastie.textmate.org/private/uacbnix2fjovtocks5lehq
Комментарии:
1. Что происходит при пятом нажатии?
toogle
должно быть очень близко к тому, что вы хотите. Но если вы не хотите возиться с исходным кодом jQuery, вы можете взглянуть на плагин, который я написал, и соответствующим образом изменить его (или улучшить ;)): github.com/fkling/jQuery-Function-Toggle-Plugin2. html5? если это так, вы можете просто увеличить углы на холсте, верно?
3. При пятом нажатии я хочу, чтобы он вернулся к функции 1 (повернулся к «обычному» виду). НЕ html5 :-/
Ответ №1:
Кажется, .toggle()
это то, что вы хотите:
Привязать два или более обработчиков к соответствующим элементам, которые будут выполняться при альтернативных щелчках мыши.
который вы бы использовали как:
$('button').toggle(func1, func2, func3, func4);
Или предоставить альтернативную реализацию:
var funcs = [func1, func2, func3, func4];
$('button').click(function() {
var data = $(this).data();
funcs[data.click_counter]();
data.click_counter = (data.click_counter 1) % funcs.length;
}).data('click_counter', 0);
Ответ №2:
$(document).ready(function(){
var i = 1 ;
$('#buttonid').click(function(){
if(i == 1) {
function1();
i ;
}
else if(i == 2) {
function2();
i ;
}
else if(i == 3) {
function3();
i ;
}
else if(i == 4) {
function4();
i=1;
}
});
});
если я правильно понял ваш вопрос. это должно быть ответом.
Комментарии:
1. @william: Тебе не кажется, что это
toggle
намного проще в использовании? Я имею в виду, пришло ваше время, но не усложняйте это больше, чем это должно быть…2. Привет, Феликс, да, ты прав. Я не уверен, что понимаю приведенный ниже пример переключения. И я немного обеспокоен этой функцией. :-/ Но пока спасибо за вашу помощь!