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

HTML+CSS+JavaScript

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

 

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

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

тема: помогите сделать через switch
 
 автор: technic611   (17.10.2013 в 13:29)   письмо автору
 
 

 
 var cnt = $(this).attr('data');

 if(cnt==0) 

 show_model ($(this).val());
 
 if(cnt==1) 
 show_details ($(this).val());

  Ответить  
 
 автор: confirm   (17.10.2013 в 14:06)   письмо автору
 
   для: technic611   (17.10.2013 в 13:29)
 

Обязательно switch? Синтаксис его конструкции точно такой же как и в РНР. Но совсем не обязательно он, лучше:
cnt ? show_details ($(this).val()) : show_model ($(this).val());

  Ответить  
 
 автор: technic611   (17.10.2013 в 17:46)   письмо автору
 
   для: confirm   (17.10.2013 в 14:06)
 

а если условий больше 4 например?

  Ответить  
 
 автор: confirm   (17.10.2013 в 18:43)   письмо автору
 
   для: technic611   (17.10.2013 в 17:46)
 

Пишите switch, но если что-то разношерстное выполняется, в котором изменяются не параметры, а действия, то уж лучше тогда, например, так:
<script>
var cond = {
    1:function(a){
        alert('run 1 + '+a)
    },
    2:function(){
        alert('run 2')
    },
    3:function(a){
        alert('run 3 + '+a)
    }
};

function runCondition(n) {
    cond[n]('add'); //выполняем по условию, плюс передали доп. значение
}
</script>

<button onclick="runCondition(1)">Run 1</button>
<button onclick="runCondition(2)">Run 2</button>
<button onclick="runCondition(3)">Run 3</button>


Здесь применяется объект, в котором описана такая "шерсть", при этом объект выгоден тем, что можно при необходимости менять его свойства.

  Ответить  
 
 автор: technic611   (17.10.2013 в 21:57)   письмо автору
 
   для: confirm   (17.10.2013 в 18:43)
 

что такое здесь а?

  Ответить  
 
 автор: confirm   (18.10.2013 в 05:30)   письмо автору
 
   для: technic611   (17.10.2013 в 21:57)
 

Аргумент функции

  Ответить  
 
 автор: technic611   (18.10.2013 в 12:00)   письмо автору
 
   для: confirm   (18.10.2013 в 05:30)
 

А если делать не через функцию?

  Ответить  
 
 автор: confirm   (18.10.2013 в 12:08)   письмо автору
 
   для: technic611   (18.10.2013 в 12:00)
 

Делайте, вы же хотели switch.

  Ответить  
 
 автор: technic611   (18.10.2013 в 13:24)   письмо автору
 
   для: confirm   (18.10.2013 в 12:08)
 

Switch почему то не работает

  Ответить  
 
 автор: confirm   (18.10.2013 в 13:41)   письмо автору
 
   для: technic611   (18.10.2013 в 13:24)
 

А он то тут причем? Значит вы в конструкции пишите ляпсусы, поэтому и не работает.

  Ответить  
 
 автор: technic611   (18.10.2013 в 14:28)   письмо автору
 
   для: confirm   (18.10.2013 в 13:41)
 

Так вы покажите как правильно

  Ответить  
 
 автор: confirm   (18.10.2013 в 15:12)   письмо автору
 
   для: technic611   (18.10.2013 в 14:28)
 

Так наверное сперва вам надо показать, что вы пишите реально, чтобы сказать, что у вас не правильно.

  Ответить  
 
 автор: technic611   (18.10.2013 в 18:34)   письмо автору
 
   для: confirm   (18.10.2013 в 15:12)
 

var cnt = $(this).attr('data'); 

 switch(cnt) {
case 0:

 show_model ($(this).val()); 
break;

case 1:
  
 show_details ($(this).val());

break;
}

  Ответить  
 
 автор: confirm   (18.10.2013 в 18:37)   письмо автору
 
   для: technic611   (18.10.2013 в 18:34)
 

Это что весь код или об остальных "участниках" этого действия мне надо догадаться?

  Ответить  
 
 автор: technic611   (18.10.2013 в 19:25)   письмо автору
 
   для: confirm   (18.10.2013 в 18:37)
 

// читаем ввод с клавиатуры
    $(".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){

сюда поставил свитч

 });

  Ответить  
 
 автор: confirm   (18.10.2013 в 20:33)   письмо автору
 
   для: technic611   (18.10.2013 в 19:25)
 

Я же вас просил написать так, как у вас, а не о догадках, потому как если так как у вас - есть это, а вот туда воткнул то, то ошибка в скобках.

$("ЗДЕСЬ_ЖЕЛАТЕЛЬНО_УКАЗЫВАТЬ_ИМЯ_ТЕГА.search_box").keyup(function(e) { 
    if($.inArray(e.keyCode, [13,27,38,40])!=-1) return false;
    else if(this.value.length>1) switch($(this).attr('data')) { 
        case 0: show_model(this.value);  
                break; 
        case 1: show_details(this.value); 
    }
});


Интересно было бы знать, что за поле такое в котором escape, стрелка вверх необходимо обрабатывать.

  Ответить  
 
 автор: technic611   (18.10.2013 в 21:32)   письмо автору
 
   для: confirm   (18.10.2013 в 20:33)
 

Что за имя тега? Вообщет escape и стрелка вверх мы их не обрабатываем!

  Ответить  
 
 автор: technic611   (18.10.2013 в 21:33)   письмо автору
 
   для: confirm   (18.10.2013 в 20:33)
 

Что за имя тега? Вообщет escape и стрелка вверх мы их не обрабатываем!

  Ответить  
 
 автор: technic611   (18.10.2013 в 21:44)   письмо автору
 
   для: confirm   (18.10.2013 в 20:33)
 

Что за имя тега? Вообщет escape и стрелка вверх мы их не обрабатываем!

  Ответить  
 
 автор: confirm   (18.10.2013 в 22:54)   письмо автору
 
   для: technic611   (18.10.2013 в 21:44)
 

Того тега, к которому вы обращаетесь по имени класса.

Ну так на клавиатуре не только ESC и стрелки, там кроме букв и цифр еще куча клавиш, что же вы их тогда не проверяете для игнорирования?

  Ответить  
 
 автор: technic611   (18.10.2013 в 23:08)   письмо автору
 
   для: confirm   (18.10.2013 в 22:54)
 

для всего остального служит default.
вы какими-то загадками пишите, что за имя тэга? вы можете пример дать, я не вообще первый раз такое слышу


вопрос с switch решил. оказывается нужно было добавить .length

  Ответить  
 
 автор: confirm   (18.10.2013 в 23:25)   письмо автору
 
   для: technic611   (18.10.2013 в 23:08)
 

Я не знаю куда вам добавить length надо было, и что у вас там со switch. Какие еще могут быть загадки, если я вам русскими буквами написал.

Если вы обращаетесь к элементу (а это html-тег - div, ul, input и т.п., и т.д....) по имени класса, то указывайте не просто имя класса, но и имя тега. Если классом .foo обладают теги, например, DIV, значит писать надо:

$('div.foo')

  Ответить  
 
 автор: technic611   (20.10.2013 в 21:52)   письмо автору
 
   для: confirm   (18.10.2013 в 23:25)
 

Для чего это делать, если и так все работает

  Ответить  
 
 автор: confirm   (20.10.2013 в 22:28)   письмо автору
 
   для: technic611   (20.10.2013 в 21:52)
 

Если вам наплевать какой ценою дается такой поиск элемента и лишь бы работало, то да, говорить вам об этом не следовало. Если же не наплевать, то подумайте сами, почему это плохо.

  Ответить  
 
 автор: technic611   (21.10.2013 в 00:15)   письмо автору
 
   для: confirm   (20.10.2013 в 22:28)
 

сколько мы сэкононмим времени доли секунды? сейчас уже не 95 год на дворе. и потом джиквери был создан чтоб облегчить все это прописывание, если я не прав, проккоментируйте

  Ответить  
 
 автор: confirm   (21.10.2013 в 00:21)   письмо автору
 
   для: technic611   (21.10.2013 в 00:15)
 

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

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

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