Задача: выбрать новости с id = [2, 10, 3, 88, 23] соблюдая порядок.
SELECT *
FROM news
WHERE id IN (2, 10, 3, 88, 23)
ORDER BY FIELD (id, 2, 10, 3, 88, 23)
Использование (EcmaScript5):
pipe(function(x) { return x + x }).pipe(function(x) { return x*x; }).pipe(function(x) { return x - 3; }).map([1,2,3])
Использование (EcmaScript6):
pipe(x => x + x).pipe(x => x*x).pipe(x => x - 3).map([1,2,3])
Сама функция:
function pipe(func) {
var callstack = [func];
return {
pipe: function(func) {
if (typeof(func) === "function")
callstack.push(func);
return this;
},
map: function(data) {
callstack.forEach(
function(func) {
data = data.map(function(val) {
return func(val); });
});
return data;
}
}
}
Результат — [ 1, 13, 33 ]
Использование
if ($('#subcategories').view()) {
alert('Виден');
} else {
alert('Не виден');
}
jQuery.fn.view = function () {
'use strict';
if (!this.length) {
return false;
}
var docViewTop = $(window).scrollTop();
var docViewBottom = docViewTop + $(window).height();
var elemTop = this.offset().top;
var elemBottom = elemTop + this.height();
return ((docViewTop < elemTop) && (docViewBottom > elemBottom));
};
Так твиттер борется со вставкой себя в <iframe>
.
if (window.top !== window.self) {
document.write = "";
window.top.location = window.self.location;
setTimeout(function () {
document.body.innerHTML = '';
}, 1);
window.self.onload = function (evt) {
document.body.innerHTML = '';
};
}
Простой шаблонизатор, когда такие монстры как Twig избыточные
class Templater {
/** @var array Данные для шаблона */
public $data = [];
/** @var string Путь к шаблону */
public $templatePath = "";
public function render(){
ob_start();
ob_implicit_flush(false);
if ($this->data) extract($this->data);
require($this->templatePath);
return ob_get_clean();
}
}
Результат:
Не знал о такой манипуляции с элементами. Если вы до сих добавляете ксс-классы через if-ы, подумайте об использовании этого подхода.
.members .item:nth-child(n+3):nth-child(-n+5) {
background: #9b59b6;
color: #fff;
}
В этой простой библитеке доступны следующие методы:
— on
— off
— is
— extend
— DOM-ready
Если перед вами стоит простая задача, где всё, что нужно — это манипуляция с dom-элементами, нет смысла подключать jQuery
.
Пара примеров того, как использовать эту библиотеку:
$(function () {
$('.btn').on('click', function () {
alert('I need my balalaika');
});
});
Мне не нравится как выглядит select
в Bootstrap, и при большом кол-ве записей в нём сложно найти нужное значение. С минимальными затратами, вы можете сделать из select
в Bootstrap, классную штуку с поиском, например, так:
Сделать это можно при помощи плагина Bootstrap-select, на сайте автора указаны вариации использования плагина.
Подключаем js и css, затем добавляем класс к select-у:
<select class="selectpicker">
<option value="c">C</option>
<option value="c#">C#</option>
...
</select>
Очень быстрый пример от наших зарубежных коллег http://stackoverflow.com/questions/2524151/php-get-all-subdirectories-of-a-given-directory, как можно обойти все вложенные директории и получить их список.
$iterator = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator('/home/nepster/www/test.ru'),
RecursiveIteratorIterator::SELF_FIRST
);
foreach ($iterator as $file) {
if ($file->isDir()) {
echo $file->getRealpath(), PHP_EOL;
}
}