<ul>
<li
v-for="(n, i) in items"
:data-rel="`ex-${i + 1}`"
@click="active = i"
>item #{{ i + 1 }}</li>
</ul>
<div
v-if="active !== null"
@mouseleave="active = null"
>{{ items[active] }}</div>data() {
return {
active: null,
items: [
'hello, world!!',
'fuck the world',
'fuck everything'
]
}
}
onChange(data) {
$('input[name="sum"]').val(data.from);
}И как поступить, если слайдера например два.
onChange(data) {
data.input
.closest('селектор блоков со слайдерами')
.find('селектор инпутов, в которые надо копировать значения')
.val(data.from);
}
data: () => ({
blocks: [
{
template: '<div><ul><li v-for="n in data" v-html="n"></li></ul></div>',
data: [
'<h2>Заголовок 1</h2><p>какой-то текст 1</p>',
'<h2>Заголовок 2</h2><p>какой-то текст 2</p>',
],
},
{
template: '<div><h3 v-for="color in data" :style="{ color }">{{ color }}</h3></div>',
data: [ 'red', 'green', 'blue' ],
},
{
template: '<div><p v-for="i in data">{{ i }}</p></div>',
data: 4,
},
],
}),Vue.component('block-component', {
props: [ 'template', 'data' ],
computed: {
compiled() {
return Vue.compile(this.template);
},
},
render() {
return this.compiled.render.call(this);
},
});<block-component v-for="n in blocks" v-bind="n"></block-component>
margin-left и margin-top.display: inline-block;.30% и 50%, например.
.wrap нет класса done, так что результат вызова $('.wrap.done') окажется пустым.$(document).on('click', '.wrap.done', function() {
$('.form, .wrap').removeClass('done');
});done элемент .wrap не виден, кликать некуда, так что неважно, есть класс или нет - можно цеплять обработчик клика просто к .wrap.
.one:hover + .two,
.two:hover {
/* показываем элемент .two */Вообще класс нужно добавлять.
.two тот же обработчик ховера, что и к .one:$('.one, .two').hover(function() {
$('.two').toggleClass('show');
});
function pasGen(chars, length) {
let prev = null;
return Array
.from({ length }, () => {
const i = Math.random() * chars.length | 0;
return chars[prev = (i + (i === prev)) % chars.length];
})
.join('');
}
<div class="heading">
<p>hello, world!!</p>
<p>fuck the world</p>
<p>fuck everything</p>
</div>.heading {
display: inline-block;
position: relative;
width: 900px;
height: 70px;
background: red;
overflow: hidden;
font-size: 60px;
}
.heading > p {
text-transform: uppercase;
color: #fefefe;
position: absolute;
width: 900px;
top: 0;
left: 0;
animation: text 6s infinite;
margin: 0;
padding: 0;
}
.heading > p:nth-child(1) { animation-delay: 0s; }
.heading > p:nth-child(2) { animation-delay: -4s; }
.heading > p:nth-child(3) { animation-delay: -2s; }
@keyframes text {
0% {
opacity: 1;
}
25%, 100% {
margin-left: 50px;
opacity: 0;
}
}
switch (index) { case 0: return _Name; case 1: return _TypeVlasn; case 2: return _HeadSurname; default: return ""; }
const imageId = post.fields.image.sys.id.forEach((post) на .forEach((post, i), аthis.images.push(response.data.fields.file.url);this.$set(this.images, i, response.data.fields.file.url);:src="images[index]" будет :src="post.image", аthis.images.push(response.data.fields.file.url);this.$set(post, 'image', response.data.fields.file.url);
const el = document.querySelector('.fab-button');
const key = 'ripple';
const val = 'true';el.dataset[key] = val;
// или
el.setAttribute(`data-${key}`, val);
// или
const attr = document.createAttribute('data-' + key);
attr.value = val;
el.attributes.setNamedItem(attr);
$('.mysubmit').prop('disabled', arr.indexOf(str) !== -1);$('.mysubmit').prop('disabled', arr.some(n => str.indexOf(n) !== -1));
$grouped = [];
foreach ($products as $p) {
$grouped[$p['category-id']][] = $p['name'];
}
const childSelector = 'img';
const className = 'myclass';$(`.${className}:not(:has(> ${childSelector}))`).removeClass(className);document.querySelectorAll(`.${className}`).forEach(n => {
n.classList.toggle(className, !!n.querySelector(`:scope > ${childSelector}`));
});const elems = document.getElementsByClassName(className);
for (let i = elems.length; i--;) {
if (!Array.prototype.some.call(elems[i].children, n => n.matches(childSelector))) {
elems[i].classList.remove(className);
}
}