\u0430\u0432\u044b\u0430\u0432\u044b\u0430
json_encode(json_decode('"\u0430\u0432\u044b\u0430\u0432\u044b\u0430"'), JSON_UNESCAPED_UNICODE);
var Block = React.createClass({
handleClose: function(e) {
e.stopPropagation();
alert('close');
},
handleClick: function(e) {
alert('click');
},
render: function() {
return (
<div onClick={this.handleClick}>
<span>Foo Bar Baz</span>
<span onClick={this.handleClose}> ×</span>
</div>
);
}
});
e.stopPropagation();
при клике на нужный вам элемент(лайк)<script src="https://cdnjs.cloudflare.com/ajax/libs/mobile-detect/1.4.1/mobile-detect.min.js"></script>
var content = document.querySelector(".entry-content");
var button = document.querySelector("#button");
function copyToClipboard(el) {
var range;
if (document.selection) {
range = document.body.createTextRange();
range.moveToElementText(el);
range.select().createTextRange();
} else if (window.getSelection) {
range = document.createRange();
range.selectNode(el);
window.getSelection().addRange(range);
} else return;
document.execCommand("copy");
}
button.addEventListener('click', () => copyToClipboard(content));
class Plugin {
constructor (rawUrl, rawName) {
this.url = new UrlParser(rawUrl);
this.name = new NameParser(rawName);
}
doSomething () {
// code
}
}
function userCode() {
new Plugin("example.com", "FooBar").doSomething()
}
class Plugin {
constructor (urlParser, nameParser) {
this.url = urlParser;
this.name = nameParser;
}
doSomething () {
// code
}
}
Plugin.init = function (url, name) {
return new Plugin(
new UrlParser(url),
new NameParser(name)
);
}
function userCode() {
Plugin.init("example.com", "FooBar").doSomething()
}
class UrlParser {
constructor (urlString) {
var result = this.matchUrlStrign(urlString)
this.anchor = result[0];
this.path = result[1];
// etc
}
}
this.url.anchor
const randomItem = arr => arr[Math.random() * arr.length | 0];
// одно значение
const randomName = randomItem(arr_names);
// или сразу несколько
const randomNames = Array.from(
{ length: 5 },
randomItem.bind(null, arr_names)
);
// работать можно не только с массивами, но и, например, со строками
const randomChar = randomItem('abcdefg');
// и HTMLCollection тоже будет как надо обработана
const randomImage = randomItem(document.images);
import time
from threading import Thread
run = True
def ticker():
while run:
time.sleep(1)
print('Тик')
time.sleep(1)
print('Так')
# Запуск функции ticker в отдельном потоке.
# Параметр daemon=True нужен чтобы
# дочерний поток умирал вместе с основным
# в случае внештатного выхода.
Thread(target=ticker, daemon=True).start()
while run:
command = input('Для выхода введите "exit"\n')
if command.lower() == 'exit':
run = False
import asyncio
import signal
def shutdown():
# Отменяем все задачи, кроме вызвавшей
for task in asyncio.Task.all_tasks():
if task is not asyncio.tasks.Task.current_task():
task.cancel()
async def user_io():
loop = asyncio.get_event_loop()
# Ждём действия от пользователя
while True:
# Запускаем input() в отдельном потоке и ждём его завершения
command = await loop.run_in_executor(None, input, 'Для выхода введите "exit"\n')
if command.lower() == 'exit':
shutdown() # Отменяем все задачи
break # и выходим из цикла
# Сопрограмма, выполняемая параллельно с ожиданием пользовательского ввода
async def task_manager():
counter = 0
while True:
try:
await asyncio.sleep(1)
except asyncio.CancelledError:
break # Выходим из цикла, если задачу отменили
counter += 1
print("I'm a task manager {}!".format(counter))
if __name__ == '__main__':
# Устанавливаем обработчик Ctrl+C
signal.signal(signal.SIGINT, lambda n, f: shutdown())
# Запускаем цикл событий
loop = asyncio.get_event_loop()
# Задача ждущая завершения сопрограм user_io и task_manager
main_task = asyncio.wait([user_io(), task_manager()])
try:
loop.run_until_complete(main_task)
except asyncio.CancelledError:
# Позволяем main_task завершиться
loop.run_until_complete(main_task)
loop.close()
QPushButton#exit_button {
border-image: url(resources/icons/64/exit.png);
}
QPushButton#config_button {
border-image: url(resources/icons/64/config.png);
}
arr.sort(({ date: a }, { date: b }) => !a ? 1 : !b ? -1 : a - b);
// или
arr.sort((a, b) => (a.date || Infinity) - (b.date || Infinity));
const sortedArr = arr
.map(n => [ n, n.hasOwnProperty('date') ? n.date : Infinity ])
.sort((a, b) => a[1] - b[1])
.map(n => n[0]);
if(!$('.login-form')[0].checkValidity()) {
$('.login-form__submit').off( "click" ).click().click(function (e) {
e.preventDefault();
tryToLogin();
});
return false;
}