function clickOutside (el) {
$(document).on('click', function(event) {
event.stopPropagation();
if ($(event.target).is(el)) return;
console.log('Клик мимо меня');
});
}
upd:
function clickOutside (selector) {
document.addEventListener('click', function (event) {
event.stopPropagation();
var el = document.querySelector(selector);
if (event.target === el) return;
console.log('Не попал =)');
});
}
upd:
function findParentBySelector(elm, selector) {
var all = document.querySelectorAll(selector);
var cur = elm.parentNode;
while(cur && !collectionHas(all, cur)) {
cur = cur.parentNode;
}
return cur;
}
function clickOutside (selector) {
document.addEventListener('click', function (event) {
event.stopPropagation();
var el = document.querySelector(selector);
if (event.target == el) return;
// Проверка на то что это дочерний элемент
if (event.target == findParentBySelector(selector)) return;
console.log('Не попал =)');
});
}
var Flat = function(id) {
this.$flat = $('#flat-'+id);
this.flatNumber = this.$flat.data('flatNumber');
this.flatRoomamount = this.$flat.data('flatRoomamount');
this.flatSquare = this.$flat.data('flatSquare');
$('#flat-number'+id).text(this.flatNumber);
$('#flat-roomamount'+id).text(this.flatRoomamount);
$('#flat-square'+id).text(this.flatSquare);
this.$flat.hover(function() {
$('#flat-info'+id).css({ display:"block" });
}, function() {
$('#flat-info'+id).css({ display:"none" });
});
}
jQuery(document).ready(function($) {
$('.flat-section').each(function(index, el) {
new Flat(index);
});
});
interface Berry {
public function getSugar() {};
}
class Strawberries implements Berry {
public function getSugar() {
return 20;
}
}
class Watermelon implements Berry {
public function getSugar() {
return 50;
}
}
class Omnomnom() {
public function printBerrySugar(Berry $berry) {
return print($berry->getSugar());
}
public function test() {
$this->printBerrySugar(new Strawberries ());
$this->printBerrySugar(new Watermelon ());
}
}
// 1. Скопировать SxGeo.php и SxGeoCity.dat (или другие базы) на сервер
// 2. Подключить файл SxGeo.php в свой скрипт, добавив строку
include("SxGeo.php");
// 3. Создать объект SxGeo
// $SxGeo = new SxGeo(); // Режим по умолчанию, файл бд SxGeo.dat
$SxGeo = new SxGeo('SxGeoCity.dat', SXGEO_BATCH | SXGEO_MEMORY); // Самый быстрый режим
// 4. Определяем город (SxGeo City, GeoLite City, IpGeoBase)
$SxGeo->get($ip); // возвращает информацию о городе, без названия региона и временной зоны
// $SxGeo->getCityFull($ip); (возвращает полную информацию о городе и регионе)
$a = exec('"ffmpeg" -y -i "path_to_video" -ab 128k -s 640x480 -vcodec mpeg4 -acodec:a copy "output.mp4" 2>&1 ', $output, $error);
$ffmpeg = FFMpeg\FFMpeg::create();
$audio = $ffmpeg->open('track.mp3');
$format = new FFMpeg\Format\Audio\Flac();
$format->on('progress', function ($audio, $format, $percentage) {
echo "$percentage % transcoded";
});
$format
-> setAudioChannels(2)
-> setAudioKiloBitrate(256);
$audio->save($format, 'track.flac');
var iframe = document.querySelector('#treeview');
var iframeDocument = iframe.contentDocument || iframe.contentWindow.document;
var tree = iframeDocument.getElementById('tree');
function DB() {
this.token = function(req) {
return Token.findOne({token: req.token}, function(err, token) {
.....
.....
})
}
}
DB.prototype.add = function (req, res, next) {
var token = this.token(req);
}
DB.prototype.addToSource = function (req, res, next) {
var token = this.token(req);
}
// остальние методы
module.exports = new DB;
public function __construct(Guard $auth, Registrar $registrar)
{
$this->auth = $auth;
$this->registrar = $registrar;
}
$this->registrar->create($request->all());
должен работать отдельно$context = stream_context_create(array("http"=>array(
"method" => "GET",
"header" => "Accept: text/*, */*\r\n",
"ignore_errors" => true,
)));
$page = file_get_contents("https://instagram.com/accounts/login/", false, $context);
extension=php_openssl.dll
allow_url_include = On