Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: сделать универсальным код
 
 автор: technic611   (15.10.2013 в 20:03)   письмо автору
 
 

$("#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());. Т.е. для каждого инпута разные функции

  Ответить  
 
 автор: tima2010   (16.10.2013 в 10:01)   письмо автору
 
   для: 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);

  Ответить  
 
 автор: technic611   (16.10.2013 в 10:35)   письмо автору
 
   для: tima2010   (16.10.2013 в 10:01)
 

почему не обязательно. можно и другое имя. а как дополнительно передать имя функции в плагин и потом ее вызвать? я с плагинами не очень умею работать

  Ответить  
 
 автор: tima2010   (16.10.2013 в 11:55)   письмо автору
 
   для: 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

  Ответить  
 
 автор: technic611   (16.10.2013 в 13:50)   письмо автору
 
   для: tima2010   (16.10.2013 в 11:55)
 

Прочитал, не очень помогло. У меня есть действие внутри плагина для инпута ( для каждого свое) или прописать прям внутри плагина для каждого инпута действия? Ну это будет как то не профессионально мне кажется, что посоветуете?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования