.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);
$('.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);
}
}
data: () => ({
login: '',
password: '',
}),
<input v-model="login" name="login" v-validate="{ not_in: password }">
<span v-if="errors.has('login:not_in')">Логин не должен совпадать с паролем</span>
<input v-model="password" name="password" v-validate="{ not_in: login }">
<span v-if="errors.has('password:not_in')">Пароль не должен совпадать с логином</span>
@click="onClick"
methods: {
onClick(e) {
console.log(e.target);
}
}
reader.onload = function(e) {
console.log(this.result);
};
reader.readAsText(file);
function groupData($data, $groupBy, $groupTo) {
$grouped = [];
foreach ($data as $t) {
$name = $t[$groupBy];
$grouped[$name][$groupBy] = $name;
unset($t[$groupBy]);
$grouped[$name][$groupTo][] = $t;
}
return array_values($grouped);
}
$grouped = groupData($arr, 'name', 'info');
data: () => ({
src: null,
}),
methods: {
onChange(e) {
const file = (e.target.files || e.dataTransfer.files)[0];
if (file) {
const reader = new FileReader();
reader.onload = () => this.src = reader.result;
reader.readAsDataURL(file);
}
},
},
<input type="file" @change="onChange">