.b-popup
появляется, он закрывает собой .b-block
, возникает событие mouseleave, и его надо скрывать. А как он скрылся - его надо снова показывать, потому что на .b-block
возникает событие mouseenter. Ну вот так оно по кругу и происходит.pointer-events: none
для .b-popup
. Или поместите .b-popup
внутрь .b-block
. :license="{
old_price: 20,
price: 200,
title: 2,
}"
TDD это когда сначала пишешь тест а уже потом код, а не наоборот?
Как узнать текущую версию вебпака? ( webpack -v выдает - webpack: command not found
npm list webpack
Можно ли как-то узнать, установлен вебпак глобально или локально?
npm list webpack
npm list webpack -g --depth 0
Как обновить вебпак ( какая именно это команда?)
npm remove webpack -D && npm i webpack -D
выводить содержимое данного тега в консоль...
<li v-for="n in items" @click="onClick(n)">
{{ n.message }}
</li>
methods: {
onClick(item) {
console.log(item.message);
}
}
...или в какой-то блок
<li v-for="n in items" @click="$emit('select', n)">
{{ n.message }}
</li>
<b-list @select="selected = $event"></b-list>
<div v-if="selected">{{ selected.message }}</div>
data: () => ({
selected: null,
...
})
Почему именно ноды, а не элементы или еще как-то?Node дословно переводится как узел.
- почему тут нодыNode - любой объект DOM, в нем реализованы базовые методы.
- а тут элемент?
В чем разница?
$( function() {
var frutsEl = $('.b-fruts');
var discountsEl = $('.b-discounts');
frutsEl.on('change', function(item) {
var frut = $(this)
.find('option[value="' + $(this).val() + '"]').attr('data');
discountsEl
.find('option')
.hide()
.filter('[data="' + frut + '"]')
.show();
discountsEl
.val(
discountsEl
.find('option[data="' + frut + '"]:first')
.attr('value')
);
});
frutsEl.change();
} );
<select class="b-fruits">
<option>apple</option>
<option>orange</option>
<option>banana</option>
</select>
<select class="b-discounts">
<option data-type="apple">100</option>
<option data-type="apple">200</option>
<option data-type="orange">300</option>
<option data-type="banana">400</option>
</select>
$('.b-fruits').change(function() {
$('.b-discounts')
.val(null)
.find('option')
.hide()
.filter(`[data-type="${$(this).val()}"]`)
.show();
}).change();
// или
const fruits = document.querySelector('.b-fruits');
const discounts = document.querySelector('.b-discounts');
fruits.addEventListener('change', ({ target: { value } }) => {
discounts.value = null;
for (const n of discounts.options) {
n.hidden = n.dataset.type !== value;
}
});
fruits.dispatchEvent(new Event('change'));