$document = new Document('http://www.example.com/', true);
echo $document->first('title::text');
$links = $document->find('a[href]::attr(href)');
var_dump($links);
$links = $document->find('a[href]:has(img)::attr(href)');
var_dump($links);
var td = $('#timeGrid td'),
selection = {
single: function(el) {
td.not(el).removeClass(this.cl);
this.ctrl(el);
},
shift: function(el) {
if (typeof this.last !== 'number') {
return this.single(el);
}
var till = $(el).index(this.slcr),
from = this.last;
if (from > till) till = [from, from = till][0];
td.not(td.eq(this.last)).removeClass(this.cl);
td.slice(from, till).add(el).addClass(this.cl);
},
ctrl: function(el) {
$(el).addClass(this.cl);
this.last = $(el).index(this.slcr);
console.log(this.last);
},
slcr: '#timeGrid td',
cl: 'pressedTime',
last: null
};
td.on('click', function(e) {
method = !e.shiftKey && !e.ctrlKey ? 'single' : (e.shiftKey ? 'shift' : 'ctrl');
selection[method](this);
});
var table = $('#timeGrid'),
td = $('td', table),
selection = {
single: function(el) {
td.not(el).removeClass(this.cl);
this.ctrl(el);
},
shift: function(el) {
if (typeof this.last !== 'number') {
return this.single(el);
}
var till = $(el).index(this.slcr),
from = this.last;
if (from > till) till = [from, from = till][0];
td.not(td.eq(this.last)).removeClass(this.cl);
td.slice(from, till).add(el).addClass(this.cl);
},
ctrl: function(el) {
$(el).addClass(this.cl);
this.last = $(el).index(this.slcr);
},
slcr: '#timeGrid td',
cl: 'pressedTime',
last: null
};
var pressed = false;
td.on({
mousedown: function(e) {
method = !e.shiftKey && !e.ctrlKey ? 'single' : (e.shiftKey ? 'shift' : 'ctrl');
selection[method](this);
pressed = true;
},
mouseenter: function() {
if (pressed) {
selection.shift(this);
}
}
});
$(document).on('mouseup', '*', function(e) {
pressed = false;
});
find . -type d -print -exec chmod 755 {} \;
find . -type f -print -exec chmod 644 {} \;
$(document).ready(function() {
var dropZone = $('#dropZone'),
maxFileSize = 2000000;
if (typeof(window.FileReader) == 'undefined') {
dropZone.text('Не поддерживается браузером!');
dropZone.addClass('error');
};
dropZone[0].ondragover = function() {
dropZone.addClass('hover');
return false;
};
dropZone[0].ondragleave = function() {
dropZone.removeClass('hover');
return false;
};
dropZone[0].ondrop = function(event) {
event.preventDefault();
dropZone.removeClass('hover');
dropZone.addClass('drop');
var file = event.dataTransfer.files[0];
if (file.size > maxFileSize) {
dropZone.text('Файл слишком большой!');
dropZone.addClass('error');
return false;
};
var xhr = new XMLHttpRequest();
xhr.upload.addEventListener('progress', uploadProgress, false);
xhr.onreadystatechange = stateChange;
xhr.open('POST', 'ui/ui-upload/upload.php');
xhr.setRequestHeader('X-FILE-NAME', 'file.name');
var fd = new FormData
fd.append("file", file)
xhr.send(fd)
};
function uploadProgress(event) {
var percent = parseInt(event.loaded / event.total * 100);
};
function stateChange(event) {
if (event.target.readyState == 4) {
if (event.target.status == 200) {
} else {
dropZone.text('Произошла ошибка!');
dropZone.addClass('error');
};
};
};
});
расположить окно в 50% от ширины экрана: win+влево/вправо — ????