|
|
|
|
$("#search_box").keyup(function(I){
// определяем какие действия нужно делать при нажатии на клавиатуру
switch(I.keyCode) {
// игнорируем нажатия на эти клавишы
case 13: // enter
case 27: // escape
case 38: // стрелка вверх
case 40: // стрелка вниз
break;
default:
// производим поиск только при вводе более 2х символов
if($(this).val().length>1){
show_model ($(this).val());
}
break;
}
});
//считываем нажатие клавишь, уже после вывода подсказки
$("#search_box").keydown(function(I){
switch(I.keyCode) {
// по нажатию клавишь прячем подсказку
case 13: // enter
case 27: // escape
$('#search_advice_wrapper').hide();
return false;
break;
// делаем переход по подсказке стрелочками клавиатуры
case 38: // стрелка вверх
case 40: // стрелка вниз
I.preventDefault();
if(suggest_count){
//делаем выделение пунктов в слое, переход по стрелочкам
key_activate( I.keyCode-39 );
}
break;
}
});
|
есть такие конструкции для одного input. так вот я добавил второй input и код нужно применить к ниму тоже. помогите его сделать универсальным. да и функцию нужно вызвать тоже другую уже , это где show_model ($(this).val());. Т.е. для каждого инпута разные функции | |
|
|
|
|
|
|
|
для: technic611
(15.10.2013 в 20:03)
| | нужно написать jquery плагин, не уверен, что правильно но возможно так:
$.fn.my_search_box = function() {
var make = function() {
$(this).keyup(function(I){
// определяем какие действия нужно делать при нажатии на клавиатуру
switch(I.keyCode) {
// игнорируем нажатия на эти клавишы
case 13: // enter
case 27: // escape
case 38: // стрелка вверх
case 40: // стрелка вниз
break;
default:
// производим поиск только при вводе более 2х символов
if($(this).val().length>1){
show_model ($(this).val());
}
break;
}
});
//считываем нажатие клавишь, уже после вывода подсказки
$(this).keydown(function(I){
switch(I.keyCode) {
// по нажатию клавишь прячем подсказку
case 13: // enter
case 27: // escape
$('#search_advice_wrapper').hide();
return false;
break;
// делаем переход по подсказке стрелочками клавиатуры
case 38: // стрелка вверх
case 40: // стрелка вниз
I.preventDefault();
if(suggest_count){
//делаем выделение пунктов в слое, переход по стрелочкам
key_activate( I.keyCode-39 );
}
break;
}
});
};
return $(this).each(make);
}
$('.search_box').my_search_box();
|
по поводу $('#search_advice_wrapper').hide(); нужно смотреть как у вас построена разметка, иначе работать не будет
если я правильно понял то данный код нужно выполнять для нескольки полей с 1 классом search_box. тогда ключевой момент в коде это: return $(this).each(make); | |
|
|
|
|
|
|
|
для: tima2010
(16.10.2013 в 10:01)
| | почему не обязательно. можно и другое имя. а как дополнительно передать имя функции в плагин и потом ее вызвать? я с плагинами не очень умею работать | |
|
|
|
|
|
|
|
для: technic611
(16.10.2013 в 10:35)
| | Мне помогла эта статья: http://jquery.page2page.ru/index.php5/%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BF%D0%BB%D0%B0%D0%B3%D0%B8%D0%BD%D0%B0_jQuery | |
|
|
|
|
|
|
|
для: tima2010
(16.10.2013 в 11:55)
| | Прочитал, не очень помогло. У меня есть действие внутри плагина для инпута ( для каждого свое) или прописать прям внутри плагина для каждого инпута действия? Ну это будет как то не профессионально мне кажется, что посоветуете? | |
|
|
|