{ path: '/city', component: City, props: () => ({ cityid: app.cityid }) }
<router-view :cityid="cityid"></router-view>
validate = true;
if (/* проверка введённых данных */) {
validate = false;
}
validate = /* проверка введённых данных */
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]);
function toggleWithInterval(selector, delay) {
let index = -1;
return setInterval(function($items) {
$items.eq(index).hide();
index = (index + 1) % $items.length;
$items.eq(index).show();
}, delay, $(selector).hide());
}
toggleWithInterval('.container1 > .good', 1000);
toggleWithInterval('.container2 > .good', 300);
/что-то\d+/
.$arr = explode(', ', explode('какой-то текст: ', $str)[1]);
preg_match_all('/[^ ,:]+(?!.*:)/', $str, $matches);
$arr = $matches[0];
display
, кроме none
и block
? Я вот слышал, будто есть ещё table-cell
, например. var i
на let i
.document.querySelectorAll('li').forEach((n, i) => {
n.addEventListener('click', e => {
console.log(i);
});
});
const onClick = e => console.log(e.target.dataset.index);
const li = document.getElementsByTagName('li');
for (let i = 0; i < li.length; i++) {
li[i].dataset.index = i;
li[i].addEventListener('click', onClick);
}
document.querySelector('ul').addEventListener('click', e => {
if (e.target.tagName === 'LI') {
const i = [...e.currentTarget.children].indexOf(e.target);
console.log(i);
}
});
elem.style.opacity += 0.02;
elem.style.opacity = (+elem.style.opacity + 0.02).toFixed(2);
.q
- а они друг другу соседями не приходятся, поскольку у каждого есть отдельный родительский элемент .trigger
. Так что замените $(this).siblings()
на $(this).parent().siblings()
.const $q = $('.trigger .q').click(function() {
$q.not(this).next().slideUp();
$(this).next().slideToggle();
});
watch: {
town_id(val) {
// ну а тут ваш запрос
}
}
resultGenes() {
return this.filteredResultGenes.filter(elem => {
return elem.snps.every(n => n.snpgroup.every(m => m.group_id === 1));
});
}
есть похожая задача, только мне необходимо сравнить два значения и если true то отрисовать блок. Every, как я понял возвращает лишь true или false. А есть какой-то метод, чтобы можно было в директиве v-if в массиве пройтись по всем объектам этого массива? ну т.е.
я хочу, чтобы сработала конструкция: v-if="type.id == date.activities.type_id " вот только activities может либо вообще не быть, либо быть пустым либо несколько их может быть.
v-if
. Сделайте вычисляемое свойство, которое будет представлять данные, соответствующие условию, и выводите их все. const obj = Object.assign({}, ...arr.map((n, i) => ({ [n]: arr2[i] })));
// или
const obj = arr.reduce((acc, n, i) => ({ ...acc, [n]: arr2[i] }), {});
const combine = (keys, values) =>
keys.reduce((acc, n, i) => (acc[n] = values[i], acc), {});
const obj = combine(arr, arr2);
.faq-content__row
оформляете в виде отдельного компонента, у которого будут параметры - заголовок и описание, и свойство, отвечающее за показ описания:props: [ 'title', 'desc' ],
data: () => ({
showDesc: false,
}),
<div class="faq-content__row">
<header class="faq-content__title">
<h2 class="faq-content__h2">{{ title }}</h2>
<div class="faq-content__button" @click="showDesc = !showDesc">+</div>
</header>
<p
:class="{
'faq-content__description': true,
'faq-content__description--active': showDesc,
}"
>{{ desc }}</p>
</div>
v-for
, будут создаваться экземпляры компонента:data: () => ({
items: [
{ title: '...', desc: '...' },
{ title: '...', desc: '...' },
...
],
}),
<div class="wrapper">
<v-faq
v-for="item in items"
v-bind="item"
></v-faq>
</div>
<div>{{ someStringValue | limit(10) }}</div>
filters: {
limit(str, limit) {
return str.length > limit ? str.slice(0, limit) + '...' : str;
}
}
<div v-html="sup(someStringValue)"></div>
methods: {
sup(val) {
return val.replace(/\.(\d+)/g, '<sup>$1</sup>');
}
}
<div class="wrapper">
<div class="item"></div>
<div class="item"></div>
</div>
.wrapper {
display: flex;
justify-content: space-evenly;
border: 1px solid black;
height: 200px;
}
.wrapper .item {
border: 1px solid black;
width: 40%;
height: 20%;
position: relative;
top: 70%;
}
$(document).on('click', '.ev-title', function() {
$(this).closest('.wrapper').find('.dop-descr').toggleClass('visible');
});
.dop-descr
, а у их самых дальних не общих предков, которыми, насколько я понял, являются .wrapper
. Если вдруг решите дополнительно стилизовать внутри .wrapper
с кликнутым .ev-title
ещё какие-то элементы, то не придётся переписывать js-код. Конечно, css придётся немного переписать, вместо .dop-descr.класс
стилизовать надо будет .класс .dop-descr
.const containerSelector = '.wrapper';
const buttonSelector = '.ev-title';
const activeClass = 'active';
$(containerSelector).on('click', buttonSelector, e => {
$(e.delegateTarget).toggleClass(activeClass);
});
document
.querySelectorAll(`${containerSelector} ${buttonSelector}`)
.forEach(n => n.addEventListener('click', onClick));
function onClick() {
this.closest(containerSelector).classList.toggle(activeClass);
}
больше не появлялось пока он не почистит куки