Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.11.2015, 19:46
Интересующийся
Отправить личное сообщение для ekkl-82 Посмотреть профиль Найти все сообщения от ekkl-82
 
Регистрация: 09.11.2013
Сообщений: 17

Кишки Zurb Foundation
В общем рассматриваю внутренности этого фреймворка
И наткнулся на такой вот код в библиотеке tabs
//......
    events : function () {
      var self = this,
          S = this.S;

      var usual_tab_behavior =  function (e, target) {
        var settings = S(target).closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init');
        if (!settings.is_hover || Modernizr.touch) {
          // if user did not pressed tab key, prevent default action
          var keyCode = e.keyCode || e.which;
          if (keyCode !== 9) {   //Какой смысл в этой проверке??? Ведь эта функция
            e.preventDefault();  //будет вызвна только в случае нажатия на пробел или ентер
            e.stopPropagation();
          }
          self.toggle_active_tab(S(target).parent());
          
        }
      };

      S(this.scope)
        .off('.tab')
        // Key event: focus/tab key
        .on('keydown.fndtn.tab', '[' + this.attr_name() + '] > * > a', function(e) {
          var keyCode = e.keyCode || e.which;
          // if user pressed tab key
          if (keyCode === 13 || keyCode === 32) { // enter or space
            var el = this;
            usual_tab_behavior(e, el);
          } 
        })
        // Click event: tab title
        .on('click.fndtn.tab', '[' + this.attr_name() + '] > * > a', function(e) {
          var el = this;
          usual_tab_behavior(e, el);
        })
        // Hover event: tab title
        .on('mouseenter.fndtn.tab', '[' + this.attr_name() + '] > * > a', function (e) {
          var settings = S(this).closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init');
          if (settings.is_hover) {
            self.toggle_active_tab(S(this).parent());
          }
        });

      // Location hash change event
      S(window).on('hashchange.fndtn.tab', function (e) {
        e.preventDefault();
        self.handle_location_hash_change();
      });
    },

//next property


Не могу понять, зачем нужна строка if (keyCode !== 9)
Ведь вызов функции происходит в случае клика мышкой или нажатие на одну из двух клавиш Enter или Space..
условие всегда будет истиной......
Или я чего-то не знаю....
Ответить с цитированием
  #2 (permalink)  
Старый 11.11.2015, 08:20
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от ekkl-82
зачем нужна строка if (keyCode !== 9)
То мобуть от Tab защищаются...
Ответить с цитированием
  #3 (permalink)  
Старый 12.11.2015, 00:13
Интересующийся
Отправить личное сообщение для ekkl-82 Посмотреть профиль Найти все сообщения от ekkl-82
 
Регистрация: 09.11.2013
Сообщений: 17

Но, насколько я вижу, она лишняя...
Ответить с цитированием
  #4 (permalink)  
Старый 12.11.2015, 08:19
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от ekkl-82
Но, насколько я вижу, она лишняя...
Ты спец - тебе видней...
Ответить с цитированием
  #5 (permalink)  
Старый 12.11.2015, 11:10
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

ekkl-82, видимо из-за такой лажи в коде у них табы и не переключаются клавишами ваще никак, хотя табуляция по ссылкам гуляет...

Последний раз редактировалось Rise, 12.11.2015 в 11:20.
Ответить с цитированием
  #6 (permalink)  
Старый 10.02.2016, 08:03
Интересующийся
Отправить личное сообщение для Zitri Посмотреть профиль Найти все сообщения от Zitri
 
Регистрация: 10.02.2016
Сообщений: 11

Ну незнаю даже что можно придумать
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск