Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Кишки Zurb Foundation (https://javascript.ru/forum/jquery/59422-kishki-zurb-foundation.html)

ekkl-82 10.11.2015 19:46

Кишки 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..
условие всегда будет истиной......
Или я чего-то не знаю....

ksa 11.11.2015 08:20

Цитата:

Сообщение от ekkl-82
зачем нужна строка if (keyCode !== 9)

То мобуть от Tab защищаются...

ekkl-82 12.11.2015 00:13

Но, насколько я вижу, она лишняя...

ksa 12.11.2015 08:19

Цитата:

Сообщение от ekkl-82
Но, насколько я вижу, она лишняя...

Ты спец - тебе видней...

Rise 12.11.2015 11:10

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

Zitri 10.02.2016 08:03

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


Часовой пояс GMT +3, время: 03:47.