const containerSelector = '.lg-container';
const itemSelector = `${containerSelector} .lg-hotspot`;
const buttonSelector = `${itemSelector} .lg-hotspot__button`;
const activeClass = 'lg-hotspot--selected';
document.addEventListener('click', ({ target: t }) => {
const button = t.closest(buttonSelector);
const item = t.closest(itemSelector);
if (button) {
item.closest(containerSelector).querySelectorAll(itemSelector).forEach(n => {
n.classList[n === item ? 'toggle' : 'remove'](activeClass);
});
} else if (!item?.classList.contains(activeClass)) {
document.querySelectorAll(itemSelector).forEach(n => {
n.classList.remove(activeClass);
});
}
});
item.closest(containerSelector)
надо заменить на document
. Если запрос может оказать влияние на пользовательские данные, то простого запроса недостаточно. Вместо этого, предполентый CORS запрос отправляется в перед отправкой необходимого запроса, чтобы гарантировать безопасность отправки запроса. Предполетные запросы необходимы в тех случаях, когда любой HTTP метод, отличный от GET, POST, HEAD или если тип содержимого POST запроса отличен от application/x-www-form-urlencoded, multipart/form-data или text/plain. Также, если запрос содержит любые собственные заголовки, то необходим предполетный запрос.
раньше можно было безграмотного юзера, лезущего со своими советами, просто обозвать идиотом и не париться.Раньше оскорбления были точно так же запрещены. Насколько я вижу, вас дважды блокировали за оскорбления в адрес пользователей, еще до закрепления этого пункта в Регламенте.
При этом режим модерации не изменился - любая чушь остается на месте, лишь бы выглядела приличненько и аккуратненько.Что же мешает вам критиковать мнение других пользователей не прибегая к оскорблениям?
На мой взгляд, такая политика не совсем верная.Если на ваш взгляд, верная политика это оскорбление пользователей, то вам не место на данном ресурсе.
def recv():
last_id = 0
while True:
file = vk.messages.getHistory(user_id=93084902, rev=0, count=1)
for i in file['items']:
if i['id'] > last_id:
last_date = i['id']
print(i['text'])
variable = Thread(target=recv, args=())
variable.start()
i['date']
на i['id']
. Если сообщения пишут очень часто, так правильнее и надёжнее. Мне показалось, что id
сообщений имеют случайный характер, но edward_freedom ткнул меня носом в мою невнимательность)) template <class T>
T* create_class(T* object = nullptr)
{
if (obj == nullptr) {
obj = new T();
if (obj == nullptr)
throw Exception("Can't create " + std::string(name_of<T>()) + " object");
}
obj->init();
return obj;
}
...
MyClass* mc = create_class<MyClass>();
delete mc;
function rangeOfNumbers(startNum, endNum) {
let numArr = [];
if (startNum === endNum ) {
numArr.push(endNum)
return numArr;
} else {
numArr.push(startNum)
return [...numArr, ...rangeOfNumbers(startNum + 1, endNum)]
}
};
console.log(rangeOfNumbers(6,9))
npm list scheduler
, or yarn why scheduler
(more info here and here)"resolutions": {
"scheduler": "0.15.0"
}
class Container
{
private $callableServices;
public function add(string $serviceName, callable $service)
{
$this->callableServices[$serviceName] = $service;
}
public function get(string $serviceName)
{
$service = $this->callableServices[$serviceName];
return $service();
}
}
$container = new Container();
// объект тут не создается, тк он внутри функции, которая не вызывается
$container->add('a', function() {
return new FirstBigService();
});
// объект тут не создается, тк он внутри функции, которая не вызывается
$container->add('b', function() {
return new SecondBigService();
});
// Внутри метода get() идет не просто доставание нужного элемента,
// а еще и его вызов (тк лежат функции), то есть именно сейчас
// произойдет new FirstBigService()
$service = $container->get('a');
// тут левый код
...
// Код ниже работает изолировано и на него ничего не может подействоват,
// т.к. внутри свой контекст
(function() {
$app = new Application();
$app->run();
});
wp_enqueue_style( 'visit_scripts');
var_dump($var);
die();