Jump to content

Mixail.09

User
  • Posts

    56
  • Joined

  • Last visited

Posts posted by Mixail.09

  1. Здравствуйте.

    Подскажите пожалуйста, в цикле перебираю элементы и как проверить что очередной элемент является элементом списка 'li' (или дивом - не важно, главное сам принцип проверки).

    Пока сделал вот так 

    target.toString() === '[object HTMLLIElement]'

    Но как то это коряво выглядит

  2. Всем здравствуйте.

    Подскажите как правильно сверстать менюшку для смартфона (примерно как на рисунке).

    Нужно чтобы иконки выстраивались по три штуки в ряд, в три строки.

    Пытаюсь использовать Flexbox, но проблема в том, что иконки в контейнере subContent накладываются одна на одну по центру

    http://codepen.io/anon/pen/BLWvwj

    даже уже другая проблема с отображением в сафари, иконки не по центру, а прижаты к левому краю 

    flex.jpg

  3. В 10.06.2016 в 03:42, Get to heaven сказал:

    как можно полноценно пользоваться языком не зная его возможностей : )

    Про полноценно пользоваться пока даже и речи не идет) пока пытаюсь хоть как то пользоваться))

    Сейчас пытаюсь на практике тренироваться, и да без этих разделов ни как. Как ни крути прочитать пришлось

  4. Здравствуйте.

    Подскажите только начал учить php и дочитал вот до этого раздела. Подозреваю что там гора стандартных функций которые я врят ли запомню без практики, да и сам раздел 300 страниц. Может в целях экономии энтузиазма можно данный раздел пропустить и вернуться к нему по мере поступления вопросов из практики? Или же обязательно к прочтению?

    https://fotki.yandex.ru/next/users/fedorovmixail-09/album/479729/view/1243483

  5. УПС((( прошу прощения за потраченное время.

    Зачем то создал 2 одинаковых файла index.html и редактировал не тот)

    А в нужном файле и правда массивы " <input type=text name=login[] value=""> "

  6. Да GETом

    calendar/calendar.php?login%5B%5D=k&password%5B%5D=y

     

    48 минут назад, Николя223 сказал:

    И да. ставьте кавычки. не ленитесь

    Кавычки в смысле в тексте сообщения? Или в коде?

    Если в коде то это не из за лени)

    https://jsfiddle.net/1pydmpvh/

    Вот целиком этот "шедевр", не знаю как правильно на php код показать

  7. 11 час назад, Николя223 сказал:

    сделайте print_r($_REQUEST);

    Сделал, оказывается такая строка передает массив name <input type=text name=login value="">?

    Вот так работает

    $name = $_REQUEST['login'][0];
    $password = $_REQUEST['password'][0];
    echo $name;
    echo $password;

    Странно, поправьте меня пжл в рассуждениях, видимо не правильно понял инфу из книги.

    Данные из формы передаются в массив $_REQUEST, где они доступны под именем формы $name = $_REQUEST['login'], в случае же если есть несколько форм с одинаковыми именами тогда в массив $_REQUEST передастся не пара "ключ: значение", а массив значений login[]. Т.Е. получается вложенный массив который будет доступен вот так $_REQUEST['login'][n].

    У меня же почему то сразу передается массив, хотя одинаковых имен форм нет. Отсюда вопрос, так и должно быть или я чего то не понимаю?  Ведь даже выше советовали делать $userName = $_REQUEST['userName']; без всяких вложенных массивов?

  8. Блин, что опять не так?

    отправляю форму

    			<form action=calendar.php method="get">
    				<h3>Введите имя</h3>
    				<input type=text name=login value="">
    				<h3>Введите пароль</h3>
    				<input type=text name=password value="">
    				<br><br>
    				<input type=submit value="Войти">
    			</form>

    и хотю ее вывести 

    		<?
    			$name = $_REQUEST['login'];
    			$password = $_REQUEST['password'];
    			echo $name;
    			echo $password;
    		?>

    и ни чего не выводится(

  9. 1 час назад, SelenIT сказал:

    Похоже, пример взят из какого-то очень архаичного руководства, чуть ли не от PHP3 (а сегодня актуален PHP7). Лучше держаться от таких музейных экспонатов подальше. Для старта стоит смотреть как минимум сюда.

    Совершенно верно, начал читать сей самоучитель чтобы хоть в общих чертах разобраться с тем как работает PHP, кстати довольно неплохо там все объясняется. Самые азы так сказать усвоил.

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

    3 часа назад, wwt сказал:

    Нужно сначала создать переменную $userName и присвоить ей значение полученное из глобального массива.

    
    $userName = $_POST['userName'];
    //или
    $userName = $_REQUEST['userName'];

    А чтобы заработал ваш код нужно чтобы был включен register_globals в конфиге PHP, но это настоятельно не рекомендуется!

     

    Спасибо. Логику понял. В своем примере как раз и не мог разобраться откуда должна появится userName, теперь ясно.

    А нет по PHP чего то похожего на онлайн учебник Ильи Кантора?

  10.  

     

     

    Здравствуйте. Почему переменная не передается в файл?

    Почему во втором файле не видно переменной $userName

    <html>	
    	
    	<head>
    		<title>стр на пхп</title>
    	</head>
    	
    	<body>
    		<h1>Title</h1>
    		<form method = "post" action = "2.php" >
    			 <span>введите свое сраное имя</span>
           <br><br>
    			 <input type = "text" name = "userName" value = "ddd">
    			 <br><br>
    			 <input type = "submit" >
    		</form>
    	</body>
    </html>
    <html>	
    	
    	<head>
    		<title>стр на пхп</title>
    	</head>
    	
    	<body>
    		<h1>Title</h1>
    		<?
    
    		print "<h2>Hi $userName ; </h2>";
    		?>
    	</body>
    </html>

     

  11. Здравствуйте.

    Помогите разобраться. Ни как не пойму как реализовать вот такое вот -

    есть объект

    {
    	title:"заголовок"
    }

     Хочу сделать конструктор который такой объект преобразует в DIV с содержимым title

    var x = new Constructor({title:"заголовок"});

    И теперь x вставлять в любое место документа и он будет отображаться как DIV с содержимым title

     

     

  12. 4 часа назад, andrey7287 сказал:

    Так то да, только твой код потенциально ошибочный (кликни по самому краю картинки) . По этому либо не используй делегирование, либо используй его правильно .

    
    galery.onclick = function(event){
          event.preventDefault();
          var target = event.target;
          while (target.id ==! 'thumbs'){
            if (target.nodeName == 'A') {
               bigImage.src = target.href;
               return;
            }
            target = target.parentNode;
          }
        }

     

    Да, спасибо вроде бы разобрался.

    То есть в цикле while будет перебираться target каждый раз присваивая ему родительский элемент,  пока в нем не окажется ссылка 'A' либо пока не while (target.id ==! 'thumbs'). То есть насколько я понял это нужно для того чтобы код корректно работал, когда внутри целевого элемента есть вложенные элементы, и клики попадают на них.

  13. 58 минут назад, andrey7287 сказал:

     

    2. Изучай делегирование, либо переписывай код таким образом, что бы таргетами были только "a".

     

    Спасибо, вместо target.getAttribute("href") написал target.parentNode.getAttribute('href') - заработало.

    Если честно думал что то что я написал и есть делегирование?

  14. Здравствуйте.

    Решаю задачку по создании галереи. Есть большое изображение и внизу галерея иконок. Так вот хотел сделать следующим образом:

    <p><img id="largeImg" src="https://js.cx/gallery/img1-lg.jpg" alt="Large image"></p> - это главное большое изображение, так вот как я делал, удалял атрибут src, а затем создавал новый атрибут src, но в котором указывалась другая ссылка (ссылку брал из галереи). Беда в том что почему то сразу происходит переход по новой ссылке и изображение открывается в новом окне.

    Вот код: http://plnkr.co/edit/BL9kTYBZOLnuF6e8seFG?p=preview

    Подскажите в чем ошибка?

  15. Здравствуйте.

    Помогите разобраться с одним вопросом.

    var links = document.querySelectorAll('a');
    for (var i = 0; i < links.length; i++) {
      var a = links[i];
      var href = a.getAttribute('href');
      if (!href) continue; // нет атрибута
      if (href.indexOf('://') == -1) continue; // без протокола
      if (href.indexOf('http://internal.com') === 0) continue; // внутренняя
      a.classList.add('external');

    Вот что не пойму - в примере в переменную links сохранили все 'a' элементы (может с терминами напутал, но суть не в этом).

    Потом каждый элемент коллекции links присвоили переменной a (через цикл). И уже к этой переменной добавили класс.

    Так вот не пойму каким образом этот класс оказался в изначальном элементе (HTML элементе)?

    Пока писал вопрос похоже разобрался.

    a.classList.add('external');  перезаписал изначальный элемент, но с нужным классом.

    Так?

  16. 10 часов назад, DivMan сказал:


    А слово this, означает,то, что взять аргументы,из той функции для которой вызван метод?
     

    В данном случае да, но вобще по моему вместо this может быть любой обьект, и из тогда для ф-цит sum будут доступны все методы выбраного обьекта

     

    11 час назад, DivMan сказал:



    А если у функции в которую передаются аргументы из другой функции,то старые аргументы игнорировать

     

    А какие другие аргументы могуть быть у ф-ции (даже взять вашу ф-цию sum). Их может быть больше, тогда через appiy они все передадутся в виде массива в sum, но использованы будут все равно только два. 

     

    По моему как то так. Но я сам только недавно учу, по этому ждем ответов опытных)

    • Like 1
  17. В 07.04.2016 в 16:26, DivMan сказал:

    Почему в консоле не отображается созданное свойство?

     

    
    function User(name, age){
    this.name = name;
    this.age = age;
    this. admin = false;
    }
    
    var u1 = new User("Vasya", 22);
    
    User.prototype.x = 10;
    
    u1

    должно быть так: User {name: "Vasya", age: 22, admin: false, x: 10}

    Так ведь работает все https://jsfiddle.net/7qjc39hz/

    В 07.04.2016 в 19:35, DivMan сказал:

    Почему не удаляется прототип?

     

    
    var F = function () {
    this.a = 1;
    }
    
    var f = new F();
    
    F.prototype.a = 44
    
    f.a = 33
    
    delete f.a
    
    delete f.a
    
    delete f.a

     

    Я кажись начинаю понимать

    Через объект по моему нельзя перезаписать или удалить свойства в прототипе (по крайней мере я не знаю как).

    Можно поменять ссылку указывающую на прототип https://jsfiddle.net/xytfdkcv/

    но если в прототипе несколько св-в, они все станут недоступными для f

  18. И в чем же тогда решение?

    Типа в первом примере до срабатывания ф-ции может измениться обьект, по этому вот вам второе решение(правда и там обьект до срабатывания может измениться) и в чем же решение?

  19. Здравствуйте. Подскажите пожалуйста такой момент:

     

    var user = {
      firstName: "Вася",
      sayHi: function() {
        alert( this.firstName );
      }
    };

    setTimeout(function() {user.sayHi();}, 1000);

     

    вот в этом примере автор говорит: "А что, если до срабатывания setTimeout (ведь есть целая секунда) в переменную user будет записано другое значение? К примеру, в другом месте кода будет присвоено user=(другой пользователь)… В этом случае вызов неожиданно будет совсем не тот!"

     

    и приводит вот такое решение:

    var user = {
      firstName: "Вася",
      sayHi: function() {
        alert( this.firstName );
      }
    };

    setTimeout(bind(user.sayHi, user), 1000);

     

    Так ведь и здесь до срабатывания кода может изменится user.firstName ? или не может?

     

  20. Всем спасибо, с замыканиями разобрался. Действительно большинство проблем было в понимании именно того как работают функции. Попробую обьяснить своими словами что понял (возможно для новичков как я это пригодится тк находимся на одном уровне понимания) прошу поправить если что то не так или дополнить:

    Итак замыкания - это когда функция использует переменные которых по идее уже не существует. То есть есть 2 ф-ции внешняя и внутренняя, во внешней обьявлена переменная x и возвращает она функцию f

    Function func( ) {

    Var x = 0;

    Return function f () {

    Return x++;

    }

    }

    Теперь при вызове внешней функции она вернет функцию f, а переменная x по идее после срабатывания функции уничтожится

    Var a = func() - то есть вызвали внешнюю ф- цию и присвоили ее return переменной a.

    То есть переменная a сейчас равна вложенной ф-ции function f() { return x++} . И теперь весь смысл замыкания в том что переменная x++ ссылается на обьявленную переменную из внешней ф-ции которая как писал выше по идее должна уничтожиться, но в этом и есть замыкания что если такая ссылка на несуществующую есть то она не уничтожается, а сохраняется в невидимом обьекте и у внутренней функции f остается к ней доступ.

    P.s наверное лютый баян написал, но думаю лишним не будет)

  21. В переменную buffer записывается возвращаемое функцией makeBuffer значение. Возвращается замыкание.

    Дальше работаем с ней, как с обычной функцией.

     

    упс...

    Не правильно понял предыдущие объяснения.  Я то подумал что вот этим var buffer = makeBuffer(); присваивается переменной buffer все что внутри makeBufer(), а оказывается только то что return.

    Уже который раз думаю что понял, но начинаю снова решать задачи и опять выясняется что ни ......... не понял.

    Сейчас в свете последних ответов попробую еще раз прозреть, хотя уже не в чем не уверен)

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy