const inputSelector = '#icons_care';
const checkboxSelector = '.check_care';
const checkboxCheckedSelector = `${checkboxSelector}:checked`;
const dataAttr = 'icon';
const separator = ', ';
$(document).on('change', checkboxSelector, () => {
$(inputSelector).val($(checkboxCheckedSelector)
.get()
.map(n => $(n).data(dataAttr))
.join(separator)
);
});
// или
document.addEventListener('change', e => {
if (e.target.matches(checkboxSelector)) {
const input = document.querySelector(inputSelector);
const cb = document.querySelectorAll(checkboxCheckedSelector);
input.value = Array.from(cb, n => n.dataset[dataAttr]).join(separator);
}
});
const buttonSelector = '.button';
const blockSelector = '.div';
const activeClass = 'red';
function toggleBlock(blocks, buttons, button) {
const index = Array.prototype.indexOf.call(buttons, button);
blocks.forEach((n, i) => {
n.classList[i === index ? 'toggle' : 'remove'](activeClass);
});
}
// обработчик клика делегированный, назначается один раз
document.addEventListener('click', e => {
const button = e.target.closest(buttonSelector);
if (button) {
const blocks = document.querySelectorAll(blockSelector);
const buttons = document.querySelectorAll(buttonSelector);
toggleBlock(blocks, buttons, button);
}
});
// или, назначаем обработчик клика каждой кнопке индивидуально
const buttons = document.querySelectorAll(buttonSelector);
const blocks = document.querySelectorAll(blockSelector);
const onClick = e => toggleBlock(blocks, buttons, e.currentTarget);
buttons.forEach(n => n.addEventListener('click', onClick));
function adBlockNotDetected() {
var s = document.createElement('script');
s.async = 1;
s.src = "//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js";
document.head.appendChild(s);
(adsbygoogle = window.adsbygoogle || []).push({
google_ad_client: "ca-pub-1339685915169539",
enable_page_level_ads: true
});
}
arr.sort((a, b) => {
if (a.name === b.name) return a.value - b.value;
return (a.name > b.name) ? 1 : -1;
});
public function dbGetRecordsToTableByColumn($table, $column, $value)
{
if (empty($table) || empty($column) || empty($value)) return [];
if (!$this->searchTableToArray($table)) return [];
if (!$this->searchColumnToArray($column, $table)) return [];
return $this->db->row("SELECT * FROM `{$table}` WHERE `{$column}` = :{$column} ORDER BY `id` DESC", [
$column => $value
]);
}
jQuery.makeArray($('#conteiner div;'))
выберет все дивы внутри контейнера, а нужно только #conteiner > div
function connectInputs(selector) {
const onInput = e => $inputs.val(e.target.value);
const $inputs = $(selector).on('input', onInput);
return () => $inputs.off('input', onInput);
}
connectInputs('#input, #output');
function connectInputs([...inputs]) {
const onInput = e => inputs.forEach(n => n.value = e.target.value);
inputs.forEach(n => n.addEventListener('input', onInput));
return () => inputs.forEach(n => n.removeEventListener('input', onInput));
}
connectInputs(document.querySelectorAll('#input, #output'));
class Main {
constructor(el) {
this.el = el;
this.startDate = false;
}
init() {
if (this.el) this.el.addEventListener('click', this.onClickPrimaryEl.bind(this));
}
onClickPrimaryEl() {
const currentDate = Date.now();
if (this.startDate && (currentDate - this.startDate > 900000)) {
} else {
}
this.startDate = currentDate;
}
}
let id = 1;
$('.button').click(function() {
const node = $('.project').clone()[0];
node.id = `id${id++}`;
$(node).appendTo('body');
});
function pad(v) {
return 'id' + ('00' + v).slice(-3);
}
let id = 1;
$('.button').click(function() {
const node = $('.project').clone()[0];
node.id = pad(id++);
$(node).appendTo('body');
});