const $li = $('ul li').show().slice(8).hide();
$('#loadMore').on('click', function(e) {
e.preventDefault();
$li.fadeToggle();
});
data: () => ({
items: [...Array(10)].map((n, i) => `item ${i}`),
selected: Array(4).fill(null),
}),<select v-for="(s, i) in selected" v-model="selected[i]">
<option
v-for="n in items"
v-text="n"
:disabled="selected.includes(n)"
></option>
</select>
const serialize = (obj, path) => Object
.entries(obj)
.map(([ k, v ]) => {
const p = path ? `${path}[${k}]` : k;
return v instanceof Object ? serialize(v, p) : `${p}=${v}`;
})
.join('&');function serialize(obj) {
const result = [];
for (const stack = [ [ obj, '' ] ]; stack.length;) {
const [ n, path ] = stack.pop();
if (n === Object(n)) {
stack.push(...Object
.keys(n)
.map(k => [ n[k], path ? `${path}[${k}]` : k ])
.reverse()
);
} else {
result.push(`${path}=${n}`);
}
}
return result.join('&');
}
не уверен, что применяются :data-vv-as и :data-vv-delay аттрибуты
You can specify a delay to debounce the input event, a case scenario that you may want to wait for the user to stop typing then validate the field
сохранить доступ к el и binding
датасет дает нам возможность сохранять только примитивы
у меня нет способа передать из родителя в инстанс компонента описание процедуры валидации
хотелось бы иметь возможность каким-либо образом отменить передачу значения, не прошедшего валидацию наверх
get-age - это не data-атрибут. Меняйте на data-age.age_3_6 будет .age_3_6, вместо age_7_10 будет .age_7_10 и т.д., ну а у элемента "все" будет data-age="*".const itemSelector = '.ped_holder .ped';
const buttonSelector = '.ages a';
const activeButtonClass = 'active';
const selectorAttr = 'age';const $buttons = $(buttonSelector).click(function() {
const selector = $buttons
.removeClass(activeButtonClass)
.filter(this)
.addClass(activeButtonClass)
.data(selectorAttr);
$(itemSelector).hide().filter(selector).show();
});
// или, к чёрту jquery
const buttons = document.querySelectorAll(buttonSelector);
const items = document.querySelectorAll(itemSelector);
buttons.forEach(n => n.addEventListener('click', onClick));
function onClick({ target: t }) {
const selector = t.dataset[selectorAttr];
buttons.forEach(n => n.classList.toggle(activeButtonClass, n === t));
items.forEach(n => n.style.display = n.matches(selector) ? '' : 'none');
}
arr.sort((a, b) => {
a = a.split('.', 2);
b = b.split('.', 2);
return (a[1] - b[1]) || (a[0] - b[0]);
});const sortedArr = arr
.map(n => n.split('.'))
.sort((a, b) => (a[1] - b[1]) || (a[0] - b[0]))
.map(n => n.join('.'));
передаю метод без аргумента onBlur={this.handleChange}стоит мне изменить на onBlur={this.handleChange('title')}onBlur={() => this.handleChange('title')}. Или вместо передачи значения в качестве параметра добавляйте его элементу как атрибут, а в обработчике события считывайте:onBlur={this.handleChange} data-change-param="title"handleChange = (e) => {
const changeParam = e.target.getAttribute('data-change-param');
...