return *this
в конце нужных методов. Например:class XXX {
double val;
public:
XXX(double v) {
val = v;
}
XXX& add(double v) {
val += v;
return *this;
}
XXX& sub(double v) {
val -= v;
return *this;
}
friend std::ostream& operator <<(std::ostream &os, const XXX &x) {
return os << x.val;
}
};
...
std::cout << XXX(5).sub(1).add(2).sub(3).add(4) << endl; // 7
const containerSelector = '.info';
const buttonSelector = `${containerSelector} button`;
const props = [ 'quantity', 'square', 'floor' ];
const { elements } = document.querySelector('form');
document.addEventListener('click', ({ target: t }) => {
if (t.matches(buttonSelector)) {
props.forEach(function(n) {
elements[n].value = this.querySelector(`.${n}`).textContent;
}, t.closest(containerSelector));
}
});
const result = arr.reduce((acc, n, i) => (
acc.push(...(i & 1 ? n : [...n].reverse())),
acc
), []);
for (let i = 0; i < arr.length; ++i) {
const a = i & 1 ? arr[i] : [...arr[i]].reverse();
for (let j = 0; j < a.length; ++j) {
result.push(a[j]);
}
}
id="link"
.this
; а вместо того, чтобы выдумывать какие-то стрёмные id для блоков которые надо показать, поднимайтесь при клике до общего предка блока и кликнутого элемента, и ищите блок через querySelector
:onclick="showTooltip(this)"
function showTooltip(link) {
const div = link.parentNode.querySelector('div');
if (div.style.display === 'none') {
div.style.display = 'block';
link.style.display = 'none';
} else {
div.style.display = 'none';
}
}
document.querySelectorAll('.contacts-number a').forEach(n => {
n.addEventListener('click', onClick);
});
function onClick() {
const div = this.closest('.contacts-number').querySelector('div');
if (div.style.display === 'none') {
div.style.display = 'block';
this.style.display = 'none';
} else {
div.style.display = 'none';
}
}
пока кроме ошибок ничего не получил
document.querySelectorAll('.test').forEach(n => {
n.textContent = n.textContent.replace(/\bAenean\b/g, 'Aenean1');
});
// или
for (const n of document.getElementsByClassName('test')) {
n.innerText = n.innerText.replace(/\bAenean\b/g, '$&1');
}
console.log(this.$store) - этот экшн видит
spoiler
this.$store.originalDispatch('setCategory', cat)
. next({
name: 'здесь имя маршрута, придумайте сами',
params: data,
})
this.$route.params
. Если надо, чтобы свойства params передавались в параметры компонента, также добавьте в описание маршрута props: true
. $header = "<tr>".implode("", array_map(function($n) {
return "<th>$n</th>";
}, array_keys($array)))."</tr>";
$rowsCount = max(array_map(function($n) {
return count($n);
}, $array));
$rows = implode("", array_map(function($i) use($array) {
foreach ($array as $item) {
$row[]= "<td>".(isset($item[$i]) ? $item[$i] : "")."</td>";
}
return "<tr>".implode("", $row)."</tr>";
}, range(0, $rowsCount - 1)));
echo "<table>$header$rows</table>";
const $buttons = $('здесь селектор ваших кнопок').click(function() {
$slick.slick('slickGoTo', $buttons.index(this));
});
$slick.on('init beforeChange', function(e, slick, currSlide, nextSlide) {
$buttons
.removeClass('active')
.eq(e.type === 'init' ? slick.currentSlide : nextSlide)
.addClass('active');
});
необходимо отлавливать событие скроллинга
что-то вроде $element.bind('mousewheel',
<div @wheel="onWheel" @scroll="onScroll">
methods: {
onWheel() {
console.log('wheel');
},
onScroll() {
console.log('scroll');
},
},
this.$set(this.arrB, i, 'значение')