var fakeBg = $('#fake_bg').height($(document).height());
$(window).on('scroll', function(){
fakeBg.css('margin-top', -$(this).scrollTop());
});
$('#variables').sortable({
revert: true,
update: function(event, ui) {
if ($(ui.item).hasClass('ui-draggable')) {
$(ui.item).css({
color: '#fff',
background: '#060'
});
}
}
});
var start = 0,
comments = $('.otziv');
$('.showmore').on('click', showPart).click();
function showPart() {
comments.slice(start, start += 5).show();
$(this)[comments.filter(':hidden').length ? 'show' : 'hide']();
}
ручками добавляетсяОднако, прогресс :)
$(document).on('click', '.button-delete-row', function(e) {
// body...
e.preventDefault();
$(this).closest('.select-row').hide();
});
Вместо document, желательно указать ближайший родительский элемент, который был сразу при загрузке DOM. <div class="container">
<div>div 1</div>
<div>div 2</div>
<div>div 3</div>
<div>div 4</div>
<div>div 5</div>
<div>div 6</div>
<div>div 7</div>
</div>
(function($) {
$.fn.classСycle = function(o) {
var _this = this,
opt = $.extend({
class: 'default_class',
delay: 1000
}, o),
divs = $('div', this),
len = divs.length - 1,
init = function(i) {
setTimeout(() => {
divs.removeClass(opt.class);
$(this).addClass(opt.class);
if (i >= len) {
setTimeout(() => $.fn.classСycle.call(_this, opt), opt.delay);
}
}, i * opt.delay);
};
return divs.each(init);
};
}(jQuery));
// Использование
$('.container').classСycle({
class: 'active', // активный класс
delay: 750 // задержка
});
// Если нужно именно load
window.addEventListener('load', fn, false );
// в большинстве случаев, достаточно дождаться загрузки DOM
document.addEventListener('DOMContentLoaded', fn, false);
function getStyle(el, styleProp) {
var currentDisplay = el.style.display,
val = null;
el.style.display = 'none';
if (el.currentStyle) {
val = el.currentStyle[styleProp];
} else if (window.getComputedStyle) {
val = document.defaultView.getComputedStyle(el, null).getPropertyValue(styleProp);
}
el.style.display = currentDisplay;
return val;
}
console.log(getStyle(document.querySelector('div'), 'left')); // 10%
var mq = window.matchMedia('screen and (min-width: 900px)');
mq.addListener(foo);
function foo(mq) {
if (mq.matches) {
// вьюпорт больше 900px
} else {
// вьюпорт меньше 900px
}
}
foo(mq);
$(function() {
var cats = $('.cats');
$('.js-show-some-cat').on('click', function(e) {
var current = cats.filter('.cat-' + $(this).data('cat-id')).show();
cats.not(current).hide();
return false; // или e.preventDefaul();, что в данном случае не принципиально
});
});
Тогда почему не работает просто: Array(n).map((_, i) => i + 1);
var arr1 = new Array(3),
arr2 = [undefined, undefined, undefined];
// в консоли визуально массивы абсолютно схожи
console.log(arr1); // [undefined, undefined, undefined]
console.log(arr2); // [undefined, undefined, undefined]
// Но попробуем посмотреть их свойства
console.log(Object.getOwnPropertyNames(arr1)); // ["length"]
console.log(Object.getOwnPropertyNames(arr2)); // ["0", "1", "2", "length"]
$("#wrap")
- вернет объект jQuery. И не "все объекты с айдишником wrap", как говорил Pavel K, а один единственный, даже, если кому-то в голову придёт создать на одной странице несколько элементов с одинаковым ID. $("#wrap")[0] === $("#wrap").get(0)
- извлекает из объекта DOM-элемент, как если бы мы обращались к нему с помощью нативного JS. Разница между последними только в форме записи: с использованием метода jQuery .get() или по свойству объекта. $(".next").click(function() {
current_fs = $(this).parent();
var hasEmpty = $('input', current_fs).css('border-color', '#ccc').filter(function() {
return $.trim($(this).val()) === '';
}).css('border-color', '#f00').length;
if (hasEmpty) {
alert('А заполнять поля за тебя Пушкин будет?');
return false;
}
// Остальной код обработчика
});
Проверку по каждому отдельному полю, с учетом необходимых требований (формат Email, кол-во символов и т.д.) - это уже сами.