Помогите оптимизировать кусок js-кода

(Ответов: 8, Просмотров: 731)
  1. Студент Аватар для Cortez
    • Регистрация: 17.06.2013
    • Сообщений: 79
    • Репутация: 19
    • Webmoney BL: ?
    Код:
    var obj_page_end = {
        cart_show: function() {
          if($("#wanderlust").hasClass("select") && $("#flights").hasClass("select") && $("#international").hasClass("select") && $("#avoiding").hasClass("select") && $("#1-1000").hasClass("select") && $("#nothanks").hasClass("select"){
            $("#arrival").removeClass("hide_block");
    Я не сведущ в javascript. Так уж вышло что нужно сделать кое-какие правки собственноручно. Вопрос следующий: можно ли в данном коде не писать .hasClass("select") для каждой переменной, а перечислить все переменные и один раз указать условие класса? Как правильно это написать?
    • 0
  2. Дипломник
    • Регистрация: 28.09.2011
    • Сообщений: 124
    • Репутация: 26
    Думаю что так как написано сейчас будет проще и понятнее...

    Извратиться можно, но зачем?

    У Вас много там похожего в коде?

    Теоретически можно сделать функцию, которая по заданному массиву элементов, возвращает true если все они содержат класс "select"...?

    Просто если это у Вас единственная проверка в JS такая, то проще ее и оставить, чем ради нее писать 1-ну функцию.
    Лучшая партнерка по юристам, недвижимость, туризму и скоро медицина , хостинг 5.5 лет у first-ов.
    • 0
  3. Студент Аватар для Cortez
    • Регистрация: 17.06.2013
    • Сообщений: 79
    • Репутация: 19
    • Webmoney BL: ?
    Просто если это у Вас единственная проверка в JS такая, то проще ее и оставить, чем ради нее писать 1-ну функцию.
    Вот как раз у меня километровая простыня таких проверок)
    • 0
  4. Sapienti sat Аватар для brainix
    • Регистрация: 01.01.2013
    • Сообщений: 1,925
    • Записей в дневнике: 1
    • Репутация: 817
    • Webmoney BL: ?
    Cortez, можно у всех этих инпутов указать один класс, и тогда будет
    if($(".yourclass").hasClass("select")){}
    • 0
  5. Студент Аватар для Cortez
    • Регистрация: 17.06.2013
    • Сообщений: 79
    • Репутация: 19
    • Webmoney BL: ?
    brainix,
    Спасибо за совет, но этот вариант не подойдет. У каждой переменной должен быть уникальный ID, так как в имеются разные аутпуты, которые зависят от того, какие именно переменные прошли валидацию на класс "selected".
    Надеюсь понятно изъяснил)
    • 0
  6. Sapienti sat Аватар для brainix
    • Регистрация: 01.01.2013
    • Сообщений: 1,925
    • Записей в дневнике: 1
    • Репутация: 817
    • Webmoney BL: ?
    Надеюсь понятно изъяснил)
    Нет :)
    Класс добавить, а идентификаторы оставить. Так не получится?
    • 0
  7. Студент Аватар для Cortez
    • Регистрация: 17.06.2013
    • Сообщений: 79
    • Репутация: 19
    • Webmoney BL: ?
    Я думаю будет проще, если я приведу пример того, какую именно задачу должен решать этот код:

    пример

    есть 6 страниц с вопросами (по одному вопросу на страницу). Каждый вопрос имеет по 3 ответа. В зависимости от данных ответов отображается тот или иной аутпут.
    І. 1 2 3
    ІІ. 1 2 3
    ІІІ. 1 2 3
    ІV. 1 2 3
    V. 1 2 3
    VI. 1 2 3
    Условие:
    Если I=1 и II=1 и III=1 и IV=1 и V=1 и VI=1 то аутпут 1
    если I=1 и II=1 и III=1 и IV=1 и V=1 и VI=2 то аутпут 2
    если I=1 и II=1 и III=1 и IV=1 и V=1 и VI=3 то аутпут 3
    если I=1 и II=1 и III=1 и IV=1 и V=2 и VI=1 то аутпут 4
    если I=1 и II=1 и III=1 и IV=1 и V=2 и VI=2 то аутпут 5
    если I=1 и II=1 и III=1 и IV=1 и V=2 и VI=3 то аутпут 6
    если I=1 и II=1 и III=1 и IV=1 и V=3 и VI=1 то аутпут 7
    .........
    и так дальше.
    [свернуть]

    Конечно этот только пример. И страниц и вопросов и аутпутов у меня гораздо больше чем в примере)
    • 0
  8. Sapienti sat Аватар для brainix
    • Регистрация: 01.01.2013
    • Сообщений: 1,925
    • Записей в дневнике: 1
    • Репутация: 817
    • Webmoney BL: ?
    Cortez, попробуйте при каждом выборе прибавлять +1 к элементу массива. Т.о. каждый элемент будет соответствовать своим группам правильным ответов. А далее найти какой элемент в массиве больше и в соответствии вывести нужный аутпут. Или в это роде, смысл, что записывать в переменную количество тех или иных ответов.
    • 1

    Спасибо сказали:

    Cortez(11.03.2014),
  9. Дипломник
    • Регистрация: 28.09.2011
    • Сообщений: 124
    • Репутация: 26
    Короче я предлагаю что-то такое...
    Но Вы смотрите сами... Дальше оптимизировать - времени нет! ))) Возможно можно красившеее...\

    PHP код:
    function Check_select(mass) {
        for (var 
    0mass.lengthi++) {        
            if (!$(
    "#"+mass[i]).hasClass("select")) {
                return 
    false;            
              }          
        }
        return 
    true;      
    }

    all_input = new Array ( "wanderlust""flights""international" );

    if (
    Check_select(all_input)) {
        
    alert("Yes");
    } else {
        
    alert("No");

    PS. Ну это в Вашей логике... но чуток "красивее"
    Лучшая партнерка по юристам, недвижимость, туризму и скоро медицина , хостинг 5.5 лет у first-ов.
    • 1

    Спасибо сказали:

    Cortez(11.03.2014),

Похожие темы

Темы Раздел Ответов Последний пост
Помогите найти код или кусок кода трояна
Консультации по безопасности 10 18.10.2012 21:13
Ребята, помогите - необходимо оптимизировать сайт. Тематика МЛМ - $
Вопросы от новичков 17 14.02.2012 17:45
Помогите с написанием правильного кода
Web программирование 0 07.05.2011 14:51
Помогите с написанием правильного кода
Софт, скрипты, сервисы 0 07.05.2011 14:51
Как отобразить кусок кода одного сайта на другом.
Web программирование 10 04.12.2010 19:59

У кого попросить инвайт?

Вы можете попросить инвайт у любого модератора:

Информеры