Как правильно работать с формой в React-Native?

В Reat создал компонент, который отрисовывает простую форму (2 поля и кнопка). По клику на кнопку (onSubmit) – отправляю данные всей формы обработчику. Теперь, нужно реализовать аналогичную форму на React-Native, в связи с этим несколько вопросов:

  1. В HTML в большинстве своем принято писать структуру формы как: from->input. В React-Native не нашел компонента Form, пока вставил TextInput без формы. В React-Native вставляются input без form?
  2. Если form нет, то не понимаю, как правильно забирать данные из input. Попробовал сделал через ref, но “value” указанного поля не удалось получить в обработчике. Так как правильно это делать?

.

// отрисовываем форму return (     <View>         <Text style={ styles.h1 }>Авторизация:</Text>         <View>              <Text style={ styles.bold }>Login (numeric):</Text>             <TextInput                 keyboardType="numeric"                 style={ { height: 40, borderColor: "gray", borderWidth: 1 } }             />              <Text style={ styles.bold }>Password (default):</Text>             <TextInput                 ref={ refInputLogin }                 keyboardType="default"                 style={ { height: 40, borderColor: "gray", borderWidth: 1 } }             />              <Button                 ref={ refInputPassword }                 color="#841584"                 onPress={ () => props.onFormSubmit(refInputLogin, refInputPassword) }                 title="GO"             />         </View>     </View> ); 

.

// обработчик формы handleFormSubmit = (login, password) => {     console.log(login.current.value);     console.log(password.current.value); }; 

Если скрыть репозиторий GitHub, бесплатный хостинг GitHub Pages будет работать?

У меня бесплатный хостинг GitHub, через репозиторий, если скрыть репозиторий, хостинг будет работать ?

Как заставить работать AJAX-валидацию reCaptcha V2 второй формы на странице с одинаковыми параметрами?

Сделал лендинг, у которого есть две одинаковые формы, с которых отправляется почта через PHP, одна из них прямо на странице, другая открывается в модальном окне (Bootstrap 4). Для сбора информации в письмо и валидации рекапчи собрал по кусочкам такой код:

$  (function() {   $  ('#page-form').submit(function(e) {     var $  form = $  (this);     var captcha = grecaptcha.getResponse();     if (!captcha.length) {       alert('Вы не ввели капчу!');     } else {       $  .ajax({         type: $  form.attr('method'),         url: $  form.attr('action'),         data: $  form.serialize()       }).done(function() {         alert('Сообщение отправлено! Мы скоро свяжемся с вами.');       }).fail(function() {         alert('Ошибка отправки, обновите страницу и попробуйте еще раз.');       });     };     e.preventDefault();   }); });  $  (function() {   $  ('#modal-form').submit(function(e) {     var $  form = $  (this);     var captcha = grecaptcha.getResponse();     if (!captcha.length) {       alert('Вы не ввели капчу!');     } else {       $  .ajax({         type: $  form.attr('method'),         url: $  form.attr('action'),         data: $  form.serialize()       }).done(function() {         $  (function () {           $  ('#order-modal').modal('toggle');         });         alert('Сообщение отправлено! Мы скоро свяжемся с вами.');       }).fail(function() {         alert('Ошибка отправки, обновите страницу и попробуйте еще раз.');       });     };     e.preventDefault();   }); }); 

Как видите, разница только в том, что разные id у форм, и еще модалка закрывается после успешной отправки с помощью toggle. Проблема в том, что форма на странице работает идеально, а в модалке показывает “Введите капчу” и не дает отправить всегда. Как я понимаю, проблема в том, что оба куска кода завязаны на ответе от одной капчи (первой по дефолту), и в скобках grecaptcha.getResponse() надо указать ID виджетов, чтобы привязка была правильная. Только вот как правильно эти ID вписывать, я так и не понял. Пробовал и с кавычками, и без, и ID формы, и ID самого дива с капчей, и рендерить ее пробовал по официальному туториалу – что-то всегда не работает. На всякой случай размерка:

Первая форма:

          <form class="order-form" id="page-form" action="action.php" method="post">             <fieldset>               <div class="order-form-wrap">                 <legend class="visually-hidden">Заполните форму для обратной связи</legend>                 <label class="visually-hidden" for="form-name">Введите ваше имя</label>                 <input class="order-form-input" type="text" name="form-name" id="form-name" placeholder="Ваше имя*" required>                 <label class="visually-hidden" for="form-email">Введите вашу электронную почту</label>                 <input class="order-form-input" type="email" name="form-email" id="form-email" placeholder="Ваш email*" required>                 <label class="visually-hidden" for="form-phone">Введите ваш номер телефона</label>                 <input class="order-form-input" type="text" name="form-phone" id="form-phone" placeholder="Ваш телефон">                 <label class="visually-hidden" for="form-message">Введите ваше сообщение</label>                 <textarea class="order-form-input order-form-textarea" type="text" name="form-message" id="form-message" placeholder="Ваше сообщение*" required rows="4"></textarea>                 <div class="g-recaptcha" id="pageRecaptcha" data-sitekey="мойключсайта"></div>                 <button class="order-form-submit" id="page-form-submit" type="submit" name="form-submit">Отправить</button>               </div>             </fieldset>           </form> 

Вторая:

      <form class="order-form" id="modal-form" action="action.php" method="post">         <fieldset>           <div class="order-form-wrap">             <legend class="visually-hidden">Заполните форму для обратной связи</legend>             <label class="visually-hidden" for="form-name">Введите ваше имя</label>             <input class="order-form-input" type="text" name="form-name" id="modal-form-name" placeholder="Ваше имя*" required>             <label class="visually-hidden" for="form-email">Введите вашу электронную почту</label>             <input class="order-form-input" type="email" name="form-email" id="modal-form-email" placeholder="Ваш email*" required>             <label class="visually-hidden" for="form-phone">Введите ваш номер телефона</label>             <input class="order-form-input" type="text" name="form-phone" id="modal-form-phone" placeholder="Ваш телефон">             <label class="visually-hidden" for="form-message">Введите ваше сообщение</label>             <textarea class="order-form-input order-form-textarea" type="text" name="form-message" id="modal-form-message" placeholder="Ваше сообщение*" required rows="4"></textarea>             <div class="g-recaptcha" id="modalRecaptcha" data-sitekey="мойключсайта"></div>             <button class="order-form-submit" id="modal-form-submit" type="submit" name="form-submit">Отправить</button>           </div>         </fieldset>       </form> 

Почему без key != “” программа перестаёт работать?

let room = {   number: 23 };  let meetup = {   title: "Conference",   occupiedBy: [{name: "John"}, {name: "Alice"}],   place: room };  room.occupiedBy = meetup; meetup.self = meetup;  alert( JSON.stringify(meetup, function replacer(key, value) {   return (key != "" && value == meetup) ? undefined : value; })); 

Челики, а что делает key != "" в функции

replacer(key, value)

?

Почему без него программа перестаёт работать?

Почему перестало работать свойство text-indent?

После добавления некоторых новый свойств, text-indent перестало работать. Пытался заменить text-indent на margin-left, но ситуация не поменялась.

 <!DOCTYPE HTML>     <html>     <head>     <meta charset="UTF-8">     <title>Piroll</title>     <link href="https://fonts.googleapis.com/css?family=Montserrat&display=swap" rel="stylesheet">     <link href="https://fonts.googleapis.com/css?family=Montserrat&display=swap" rel="stylesheet">     <link href="https://fonts.googleapis.com/css?family=Nunito+Sans&display=swap" rel="stylesheet">     </head>     <body>     <style>         body {             min-width: 1360px;             margin:0px;             padding:0;         }         header {          min-height: 100%;          height: 240px;          background-color: #e9e9e9;         }     .logo {     margin-top: 38px;     margin-left: 100px;     }     .menu {         margin-top: -30px;     }     .menu a {         text-decoration: none;         display:inline-block;         color: #1d1d1d;      }     .text {         font-family: 'Montserrat', sans-serif;         margin-right: 50px;         font-size: 12px;         letter-spacing: 1px;         word-spacing: 20px;         font-weight: bolder;         margin-right: 30px;     }     .indent {         font-family: 'Montserrat', sans-serif;         margin-right: 50px;         font-size: 12px;         letter-spacing: 1px;         word-spacing: 20px;         font-weight: bolder;         margin-right: 40px;         text-indent: 610px;         margin-top: -30px;         text-align: right;     }     .menu a:hover{         text-decoration: none;         color: lightskyblue;     }     .banner {         background-color: #e9e9e9;         height: 420px;         margin:none;     }     .web1 {         text-align: right;         font-family: 'Montserrat', sans-serif;         color: #1d1d1d;         font-weight: 700;         font-size: 40px;         word-spacing: 20px;         letter-spacing: 0.5px;         margin-right: 140px;         margin-top: none;     }     h2 {         margin:0;         padding:0;     }     .web2 {         text-align:right;         font-family: 'Nunito Sans', sans-serif;         color: #818181;         font-weight:lighter;         font-size: 18px;         word-spacing: 5px;         letter-spacing: 0.5px;         margin-right: 140px;         margin-top: 40px;         text-indent: 400px;     }     .web3{         text-align:right;         font-family: 'Nunito Sans', sans-serif;         color: #818181;         font-weight:lighter;         font-size: 18px;         word-spacing: 5px;         letter-spacing: 0.5px;         margin-right: 140px;         margin-top: -15px;         text-indent: 400px;      }     .web4 {         text-align:right;         font-family: 'Nunito Sans', sans-serif;         color: #818181;         font-weight:lighter;         font-size: 18px;         word-spacing: 5px;         letter-spacing: 0.5px;         margin-right: 140px;         margin-top: -15px;         text-indent: 400px;     }     </style>     <header>     <img src="logo.png" alt="" class="logo">     <div class="menu">      <a href="#" onMouseOut='getElementyById' (menu1).style.display="none";     onMouseover="getElementyById" (menu1).style.display="block";><p class="text indent">HOME</p></a>     <a href="#" onMouseOut="getElementyById" (menu2).style.display='none';     onmouseover="getElementyById" (menu2).style.display="block";><p class="text">ABOUT</p></a>     <a href="#" onMouseOut="getElementyById" (menu3).style.display='none';     onmouseover="getElementyById" (menu2).style.display="block";><p class="text">WORK</p></a>     <a href="#" onMouseOut="getElementyById" (menu4).style.display='none';     onmouseover="getElementyById" (menu2).style.display="block";><p class="text">PROCESS</p></a>     <a href="#" onMouseOut="getElementyById" (menu5).style.display='none';     onmouseover="getElementyById" (menu2).style.display="block";><p class="text">SERVICES</p></a>     <a href="#" onMouseOut="getElementyById" (menu6).style.display='none';     onmouseover="getElementyById" (menu2).style.display="block";><p class="text">TESTIMONIALS</p></a>     <a href="#" onMouseOut="getElementyById" (menu7).style.display='none';     onmouseover="getElementyById" (menu2).style.display="block";><p class="text">CONTACT</p></a>       </div>     </header>     <div class="banner">     <h2 class="web1">Web Design and Development</h2>     <p class="web2">We are a new design studio based in USA. We have over </p>     <p class="web3">20 years of combined experience, and know a thing or two</p>     <p  class="web4">about designing websites and mobile apps. </p>     </div>     </body>     </html> 

Как будет работать GC

Рассмотрим случай, когда объект хранит ссылку на самого себя. Ну например что-то вроде такого

public class A {     private A a;     public A() {       a = this;    } } 

Каким в данном случае будет жизненный цикл объектов данного класса? GC не трогает объекты до тех пор, пока есть ссылки на них. Следует ли из этого то, что объекты этого класса как минимум будут храниться в памяти до тех пор, пока я не присвою переменной a значение null?

Как работать с прерываниями с последовательным портом в Linux?

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

#include <linux/module.h> #include <linux/interrupt.h>  MODULE_LICENSE( "GPL v2" ); #define SHARED_IRQ 1 #define MAX_SHARED 9 #define NAME_SUFFIX "serial_" #define NAME_LEN   10 static int irq = SHARED_IRQ, num = 2;  module_param( irq, int, 0 ); module_param( num, int, 0 );   static irqreturn_t handler( int irq, void *id ) {    cycles_t cycles = get_cycles();    printk( KERN_INFO "%010lld : irq=%d - handler #%d\n", cycles, irq, (int)id );    return IRQ_NONE; }  static char dev[ MAX_SHARED ][ NAME_LEN ];  int init_module( void ) {    int i;    if( num > MAX_SHARED ) num = MAX_SHARED;    for( i = 0; i < num; i++ ) {       sprintf( dev[ i ], "serial_%02d", i + 1 );       if( request_irq( irq, handler, IRQF_SHARED, dev[ i ], (void*)( i + 1 ) ) ) return -1;    }    return 0; }  void cleanup_module( void ) {    int i;    for( i = 0; i < num; i++ ) {       synchronize_irq( irq );       free_irq( irq, (void*)( i + 1 ) );    } } 

Barba.js, после смены страницы скрипты перестают работать

Рабочий сниппет к сожалению сюда прикрепить не могу, вот скрипт.

document.addEventListener("DOMContentLoaded", function() {    document.querySelector('.home').addEventListener('mouseover', function() {     var tl = new TimelineMax();     tl       .to(displacementFilter.scale, .5, {         x: 150,         y: 550       })       .to(displacementFilter.scale, .5, {         x: 0.1,         y: 0.1       });     tl       .to(image1, 1, {         alpha: 1       }, .35)       .to(image2, 1, {         alpha: 0       }, .35)       .to(image3, 1, {         alpha: 0       }, .35);   });    document.querySelector('.cases').addEventListener('mouseover', function() {     var tl = new TimelineMax();     tl       .to(displacementFilter.scale, .5, {         x: -700,         y: -250       })       .to(displacementFilter.scale, .5, {         x: 0.1,         y: 0.1       });     tl       .to(image1, 1, {         alpha: 0       }, .35)       .to(image2, 1, {         alpha: 1       }, .35)       .to(image3, 1, {         alpha: 0       }, .35);   });    document.querySelector('.about').addEventListener('mouseover', function() {     var tl = new TimelineMax();     tl       .to(displacementFilter.scale, .5, {         x: 350,         y: 800       })       .to(displacementFilter.scale, .5, {         x: 0.1,         y: 0.1       });     tl       .to(image1, 1, {         alpha: 0       }, .35)       .to(image2, 1, {         alpha: 0       }, .35)       .to(image3, 1, {         alpha: 1       }, .35);   });    document.querySelector('.order').addEventListener('mouseover', function() {     var tl = new TimelineMax();     tl       .to(displacementFilter.scale, .5, {         x: -400,         y: -200       })       .to(displacementFilter.scale, .5, {         x: 0.1,         y: 0.1       });     tl       .to(image1, 1, {         alpha: 0       }, .35)       .to(image2, 1, {         alpha: 0       }, .35)       .to(image3, 1, {         alpha: 0       }, .35);   });    /* PREVIEW ANIMATION */    // PIXI INIT STAGE   const checker = new PIXI.Application({     width: 435,     height: 900,     backgroundColor: 0xf1f1f1,     resolution: window.devicePixelRatio || 1,   });   document.querySelector('div.menuRightSide div.preview').appendChild(checker.view);      var stage = new PIXI.Stage();   var container = new PIXI.Container();   checker.stage.addChild(container);     // render image   var image1 = PIXI.Sprite.from('img/canvas/1.png');   container.addChild(image1);    var image2 = PIXI.Sprite.from('img/canvas/2.png');   image2.alpha = 0;   container.addChild(image2);    var image3 = PIXI.Sprite.from('img/canvas/3.png');   image3.alpha = 0;   container.addChild(image3);     //add filters   var disSprite = PIXI.Sprite.from('img/canvas/perlinNoise.jpg');    const displacementFilter = new PIXI.filters.DisplacementFilter(disSprite);   displacementFilter.scale.set(0.1);   container.addChild(disSprite);   container.filters = [displacementFilter];      function draw() {     /*        disSprite.x += 1;             disSprite.y += 1;*/     checker.render(stage);     window.requestAnimationFrame(draw);   }    draw();       /*BarbaStart*/    var ExpandTransition = Barba.BaseTransition.extend({     start: function() {       Promise         .all([this.newContainerLoading, this.zoom()])         .then(this.showNewPage.bind(this));     },      zoom: function() {       var deferred = Barba.Utils.deferred();       deferred.resolve();       return deferred.promise;     },      showNewPage: function() {       this.done();     }   });    Barba.Pjax.getTransition = function() {     var transitionObj = ExpandTransition;      return transitionObj;    };    Barba.Pjax.start();  });  /*BarbaStart*/  /*JT*/  $  (document).ready(function() {    /* PRELOADER */   if ($  ('.preloader').hasClass('active')) {     $  ('html, body').toggleClass('overflowH');     $  ('html,body').css('cursor', 'none');     $  ('.screenOne').toggleClass('active');     if ($  ('.preloader .screenOne').hasClass('active')) {       setTimeout(function() {         $  ('div.preloader div.screenOne div.loadingBlock h4').css({           'transform': 'translateY(0)',           'opacity': '1'         });       }, 200);       setTimeout(function() {         $  ('div.preloader div.screenOne div.headphones svg').toggleClass('headphonesAnimation');       }, 450);       setTimeout(function() {         $  ('div.preloader div.screenOne div.headphones svg').toggleClass('headphonesAnimation');         $  ('div.preloader div.screenOne div.headphones svg').css('opacity', '1');         $  ('div.preloader div.screenOne div.headphones p').css('opacity', '1');       }, 950);       setTimeout(function() {         $  ('div.preloader div.screenOne p.percent').css('opacity', '1');       }, 1200);        setTimeout(function() {         function loader(_success) {           var inner = document.querySelector('p.percent');           var w = 0,             t = setInterval(function() {               w = w + 1;               inner.textContent = w + '%';               if (w === 100) {                 $  ('div.preloader div.screenOne div.loadingBlock h4').css({                   'transform': 'translateY(-100%)',                   'opacity': '0'                 });                 $  ('div.preloader div.screenOne div.headphones svg').css('opacity', '0');                 $  ('div.preloader div.screenOne div.headphones p').css('opacity', '0');                 $  ('div.preloader div.screenOne p.percent').remove();                  setTimeout(function() {                   $  ('.pseudoScreen').toggleClass('startPrealoder');                 }, 300);                 setTimeout(function() {                   $  ('.screenOne').css('display', 'none');                   $  ('.pseudoScreen').css('display', 'none');                   $  ('.screenTwo').css('display', 'block');                 }, 550);                 setTimeout(function() {                   $  ('.screenTwo div.textAgency h2').css('transform', 'scale(1)');                 }, 600);                 setTimeout(function() {                   $  ('.screenTwo div.textAgency h2').css({                     'transition': '0',                     'transform': 'scale(1.2)',                     'color': '#fff'                   });                 }, 1000);                 setTimeout(function() {                   $  ('.screenTwo div.textAgency h2').text('DIGITAL');                   $  ('.screenTwo').css('background', '#171717');                   $  ('.screenTwo div.textAgency h2').css({                     'transition': '.15s',                     'transform': 'scale(1)'                   });                 }, 1050);                 setTimeout(function() {                   $  ('.screenTwo div.textAgency h2').css({                     'transition': '0',                     'transform': 'scale(1.2)',                     'color': '#1b1b1b'                   });                 }, 1450);                 setTimeout(function() {                   $  ('.screenTwo div.textAgency h2').text('AGENCY');                   $  ('.screenTwo').css('background', '#eee');                   $  ('.screenTwo div.textAgency h2').css({                     'transition': '.15s',                     'transform': 'scale(1)'                   });                 }, 1500);                 setTimeout(function() {                   $  ('div.preloader').css('opacity', '0');                    PIXI.sound.Sound.from({                     url: 'music/loop.mp3',                     preload: true,                     loop: true,                     autoPlay: true,                     volume: 0.1,                     loaded: function(err, sound) {                       sound.play();                     }                   });                 }, 1950);                 setTimeout(function() {                   $  ('div.preloader').css('display', 'none');                   $  ('div.preloader').toggleClass('active');                   $  ('html, body').css('cursor', 'default');                   $  ('div.startScreen').css('display', 'block');                   setTimeout(function() {                      $  ('div.startScreen div.paddingLinear div.content div.titleAnimation h1').css('transform', 'translate(0)');                      setTimeout(function() {                       $  ('div.startScreen div.paddingLinear div.content div.titleAnimation h1').css('opacity', '1');                     }, 100);                     setTimeout(function() {                       $  ('div.startScreen div.paddingLinear div.content div.miniPadding h3').css('opacity', '1');                     }, 350);                     setTimeout(function() {                       $  ('div.startScreen div.paddingLinear div.content div.miniPadding h4').css('opacity', '1');                     }, 650);                     setTimeout(function() {                       $  ('div.startScreen div.paddingLinear div.content div.miniPadding p.aboutNums').css('opacity', '1');                       $  ('div.startScreen div.paddingLinear div.content div.miniPadding p.numsWithMe').css('opacity', '1');                       $  ('div.startScreen div.paddingLinear div.content div.miniPadding div.circles').css('opacity', '1');                     }, 900);                     setTimeout(function() {                       $  ('div.startScreen div.paddingLinear div.content div.miniPadding div.buttons').css('opacity', '1');                     }, 1300);                    }, 1000);                   setTimeout(function() {                     $  ('.me').css('opacity', '.6');                   }, 500);                   setTimeout(function() {                     $  ('.me').css('opacity', '.25');                   }, 600);                   setTimeout(function() {                     $  ('.me').css('opacity', '1');                   }, 700);                   setTimeout(function() {                     $  ('.me').css('opacity', '.5');                   }, 800);                   setTimeout(function() {                     $  ('.me').css('opacity', '1');                   }, 900);                   setTimeout(function() {                     $  ('div.startScreen').css('overflow', 'auto');                   }, 1450);                 }, 2150);               }             }, 20);         }          loader();       }, 1750);     }   }   /* PRELOADER */    $  (function() {     $  ("html").mousemove(function(e) {       customCursor.style.transform = customCursor.style.WebkitTransform = customCursor.style.MsTransform = ('translateY(' + e.clientY + 'px) translateX(' + e.clientX + 'px)');     });   });    if ($  (window).width() > 768 && document.getElementById("startScreen")) {      $  (document).on('mousemove', function(e) {       var amountMovedX = 100 - 30 * ((e.pageX + 1) / $  (document).width());       $  ('div.startScreen .me').css('transition', '.15s');       me.style.transform = 'translateX(' + amountMovedX + 'px)';     });    };    $  (document).on('mousemove', function(e) {     var amountMovedX = 100 - 60 * ((e.pageX + 1) / $  (document).width());     var amountMovedY = 100 - 60 * ((e.pageY + 2) / $  (document).width());     $  ('div.preview canvas').css({       'transition': '.15s',       'position': 'absolute'     });     $  ('div.preview canvas').css({       'margin-left': '-' + amountMovedX + 'px'     });     $  ('div.preview canvas').css({       'margin-top': '-' + amountMovedY + 'px'     });   });    /* MENU */   $  ("a").mouseenter(function() {     $  ('div.customCursor').css('background', '#fff').css('width', '50px').css('height', '50px').css('margin-left', '-25px').css('margin-top', '-25px');   });    $  ("a").mouseleave(function() {     $  ('div.customCursor').css('background', 'none').css('width', '35px').css('height', '35px').css('margin-left', '-20px').css('margin-top', '-20px');   });    $  ("a.toggleMenu").click(function() {     $  ('.startScreen').css('overflow', 'hidden');     $  ('.menuToggleShape').css({       'transform': 'scale(100)',       'opacity': '1'     });      setTimeout(function() {       $  ('div.menu').css({         'display': 'block',         'opacity': '1'       });        setTimeout(function() {         $  ('div.menu').toggleClass('menuActive');       }, 150);     }, 600);   });    $  ("a.closeMenu").click(function() {     $  ('div.menu').toggleClass('menuActive');     setTimeout(function() {       $  ('div.menu').css('opacity', '0');     }, 300);     setTimeout(function() {       $  ('div.menu').css('display', 'none');     }, 500);     setTimeout(function() {       $  ('.menuToggleShape').css('transform', 'scale(0)');       $  ('.startScreen').css('overflow', 'auto');     }, 500);     setTimeout(function() {       $  ('.menuToggleShape').css('opacity', '0');     }, 700);   });  });   if ($  (window).width() > 1000 && document.getElementById("cases")) {   function addOnWheel(elem, handler) {     if (elem.addEventListener) {       if ('onwheel' in document) {         // IE9+, FF17+         elem.addEventListener("wheel", handler);       } else if ('onmousewheel' in document) {         // устаревший вариант события         elem.addEventListener("mousewheel", handler);       } else {         // 3.5 <= Firefox < 17, более старое событие DOMMouseScroll пропустим         elem.addEventListener("MozMousePixelScroll", handler);       }     } else { // IE8-       cases.attachEvent("onmousewheel", handler);     }   }     var translateY = 1;    $  (window).keydown(function(e) {      var stylizationTransform = cases.style.transform;      if (e.keyCode == 32 || e.keyCode == 40) {       if (stylizationTransform != ('translateY(-87.5%)')) translateY -= 1.5;       cases.style.transform = cases.style.WebkitTransform = cases.style.MsTransform = 'translateY(' + translateY + '%)';     }      if (e.keyCode == 38) {       if (cases.style.transform = ('translateY(' > 0 + '%)')) {         if (stylizationTransform <= ('translateY(0%)')) translateY += 1.5;         cases.style.transform = cases.style.WebkitTransform = cases.style.MsTransform = 'translateY(' + translateY + '%)';       }     }    });    addOnWheel(cases, function(e) {     var delta = e.deltaY || e.detail || e.wheelDelta;       var stylizationTransform = cases.style.transform;      if (cases.style.transform = ('translateY(' != -87.5 + '%)')) {       if (delta > 0 && stylizationTransform != ('translateY(-87.5%)')) translateY -= 1.5;       cases.style.transform = cases.style.WebkitTransform = cases.style.MsTransform = 'translateY(' + translateY + '%)';     }     if (cases.style.transform = ('translateY(' > 0 + '%)')) {       if (delta < 0 && stylizationTransform <= ('translateY(0%)')) translateY += 1.5;     }      // отмасштабируем при помощи CSS      // отменим прокрутку     e.preventDefault();    }); }  /*JT*/ 

Прикрепляю ссылку на сайт, на котором проблема актуальна для того, чтобы видеть ситуацию лучше: http://ibudakov.ru/

При первоначальной загрузке страниц кейсы и главная все скрипты отрабатывают как надо. У барбы слишком скудное описание и найти решение так и не смог, надеюсь на Вашу помощь. Спасибо!

Страницы: Главная Кейсы

Как работать подключать файлы(html,css,js)?

Представим есть папка “project”. В ней ещё три папки такие как “HTML”, “CSS” и “javaScript”. В папке “HTML” есть файл index.html , а в папке “javaScript” есть файл code.js. Что надо написать в(index.html) атрибуте “src” тега “script” чтобы подключить файл code.js? Или так нельзя делать и нужно чтобы было так: папка с файлом index.html в которой папка с файлом code.js