data: () => ({
show: false,
items: [ 'в сети', 'занят', 'отсутствую', 'в самолете', 'в пути' ],
status: 'статус',
}),
methods: {
selectStatus(status) {
this.status = status;
this.show = false;
},
},<div
v-text="status"
@click="show = !show"
></div>
<ul v-show="show">
<li
v-for="n in items"
v-text="n"
@click="selectStatus(n)"
></li>
</ul>
{ имя_диалога: состояние }. Тогда при обновлении состояния диалогов не будет необходимости обращаться к ним поимённо:mutations: {
dialogShow: (state, payload) => Object.assign(state.modals, payload),
},modals() {
return new Proxy(this.$store.state.modals, {
set: (target, prop, value) => {
this.$store.commit('dialogShow', { [prop]: value });
return true;
},
});
},<el-button @click="modals.dialogSignIn = true">sign in</el-button>
<el-dialog :visible="modals.dialogSignIn" @close="modals.dialogSignIn = false">
<span slot="footer" class="dialog-footer">
<el-button @click="modals.dialogSignIn = false">Закрыть</el-button>
</span>
</el-dialog>
То есть если пользователь кликнул три раза по первой кнопке, то дочерний компонент значение "4" вывел только один раз.
В Network указывается не jpeg, а text/html
mounted() {
const img = new Image();
img.onload = () => this.$refs.canvas.getContext('2d').drawImage(img, 0, 0);
img.src = '...';
},
const input = document.querySelector('#textLink');
const buttonSelector = '.link';const getText = el => el.innerText;
// или
const getText = el => el.textContent;
// или (будет работать как надо, пока элемент остаётся ссылкой)
const getText = el => el.text;
// или (будет работать как надо, пока вложенные элементы не появятся)
const getText = el => el.innerHTML;document.addEventListener('click', ({ target: t }) =>
(t = t.closest(buttonSelector)) &&
(input.value = getText(t))
);document.querySelectorAll(buttonSelector).forEach(function(n) {
n.addEventListener('click', this);
}, e => input.value = getText(e.currentTarget));
<select id="departure"></select>
<select id="destination"></select>
<select id="type">
<option value="1">в одну сторону</option>
<option value="2">туда и обратно</option>
</select>
<div id="price"></div>const routes = [
[ 'Хабаровск', 'Казань', 100 ],
[ 'Хабаровск', 'Омск', 200 ],
[ 'Хабаровск', 'Владивосток', 300 ],
[ 'Хабаровск', 'Иркутск', 400 ],
[ 'Хабаровск', 'Москва', 500 ],
[ 'Тюмень', 'Владимир', 234 ],
[ 'Тюмень', 'Красноярск', 345 ],
[ 'Тюмень', 'СПб', 456 ],
[ 'Тюмень', 'Москва', 567 ],
[ 'Тюмень', 'Якутск', 678 ],
];
const prices = routes.reduce((acc, n) => (
(acc[n[0]] = acc[n[0]] || [])[n[1]] = n[2],
(acc[n[1]] = acc[n[1]] || [])[n[0]] = n[2],
acc
), {});
const setOptions = (el, options) =>
el.innerHTML = options.map(n => `<option>${n}</option>`).join('');
const updatePrice = () =>
price.textContent = type.value * prices[departure.value][destination.value];
const departure = document.querySelector('#departure');
const destination = document.querySelector('#destination');
const type = document.querySelector('#type');
const price = document.querySelector('#price');
type.addEventListener('change', updatePrice);
destination.addEventListener('change', updatePrice);
departure.addEventListener('change', e => {
setOptions(destination, Object.keys(prices[e.target.value]));
updatePrice();
});
setOptions(departure, Object.keys(prices));
departure.dispatchEvent(new Event('change'));
Не работает
есть вариант решения?
Я хочу что бы у инпутов focus срабатывал только по клику
arr.map(n => ({
...n,
items: n.items.filter(m => m.checked).map(m => ({ ...m })),
}))возможно, computed надо высчитывать?
computed: {
checkedArr() {
return this.arr.map(/* ... */);
},
},
const data = [
{ title: 'a', value: 0 },
{ title: 'b', value: 100 },
{ title: 'c', value: 200 },
];
d3.select('#svg')
.selectAll('g')
.data(data)
.enter()
.append('g')
.append('rect')
.attr('x', d => d.value)
.attr('y', d => d.value)
.attr('width', 50)
.attr('height', 50)
.attr('fill', '#F0A');
Не вижу явного удаления из дом дерева.
.js-select-tabs-head, неужели этого не видно? Или вы думаете, что там другой элемент, копия? Это не так - можете получить элемент до вызова html, после, сравнить их, увидите, что это один и тот же элемент.$head.html($text.filter('.is-active').clone()).
append('div') должно быть append('xhtml:div').