• Как находить подгружаемые элементы через JQuery?

    @NonameMeTrue
    Предположим, что все новые посты со скроллинга отправляются в общий контейнер с классом postsArea.

    Тогда можно отследить у новорождённых элементов - является ли контейнер postsArea родителем. Если да - обработать по нуждам.

    //Полифилл closest:
    if (window.Element && !Element.prototype.closest) {
      Element.prototype.closest = 
      function(s) {
          var matches = (this.document || this.ownerDocument).querySelectorAll(s),
              i,
              el = this;
          do {
              i = matches.length;
              while (--i >= 0 && matches.item(i) !== el) {};
          } while ((i < 0) && (el = el.parentElement)); 
          return el;
      };
    }
    
    function handlerForNative (e) {
    	//Если входящий DOM - не элемент, а текст.
    	if(!e.target.closest) return;
    	//Если принадлежит нужному контейнеру.
    	if(e.target.closest('.postsArea')) {
    		//Проверив нужды - имеем доступ к новому посту.
    		var newPostElement = e.target;
    		//И делаем с ним что угодно.
    		//newPostElement.addEventListener
    	} //Иначе - игнорируем.
    }
    
    //Для jQuery не требуется полифилл.
    function handlerForJquery (e) {
    	if(!e.target.closest) return;
    	if($(e.target).closest('.postsArea').length) {
    		var newPostElement = $(e.target);
    		//newPostElement.on
    	}
    }
    
    //Native:
    document.addEventListener('DOMNodeInserted', handlerForNative);
    
    //jQuery:
    $(document).on('DOMNodeInserted', handlerForJquery);
    Ответ написан
  • Как оптимизировать и минимизировать код javascript в слайдере?

    @NonameMeTrue
    [].forEach.call(btnSlideArray, function(el, i) {
    	el.addEventListener('click', function(evt) {
    		evt.preventDefault();
    		slideChange(this.valueOf(), btnSlideArray.length);
    	}.bind(i));
    });
    Ответ написан
    Комментировать
  • Ajax вывод из формы в файл, как?

    @NonameMeTrue
    Для клиентской части:

    $.post('/youURL', $('form').serialize(), function (response) {
        //Code 200.
    })


    Лучше указать более точный селектор к нужной форме, например:

    $('form#id').serialize()

    На сервере проверить - пришли ли параметры(ключ = атрибут name в каждом теге input). Если есть - записать:

    if(!empty($_POST['name']) && !empty($_POST['other'])) {
    	$filename = 'GuestData.txt';
    	$somecontent = $_POST['name']."\r\n";
    	if (is_writable($filename)) {
    		if (!$handle = fopen($filename, 'a')) {
    			//die();
    		}
    		if (fwrite($handle, $somecontent) === false) {
    			//die();
    		}
    		fclose($handle);
        //return some
    	}
    }


    Это всего лишь пример. На серверной части укажите нужные вам параметры для полной работоспособности.
    Ответ написан
    Комментировать