$( $('#Welcome_points>.Wpoint')[Math.floor(Math.random() * $('#Welcome_points>.Wpoint').length)] ).addClass('a1');
задавать отрицательные margin и paddingpadding не может быть отрицательным
хоть и не вредит семантикичто за бред, как семантика связана с margin и padding?
Можно лиможно
window.addEventListener('scroll', ((bluringElement) => {
return () => bluringElement.style.opacity = window.pageYOffset / 240;
})(document.querySelector('.blur')), false);
console.log(this.href); /*вот в этом месте undefined*/
console.log(el.href);
который бы подсвечивал активный пункт меню
if(el.pathname === window.location.pathname)
el.classList.add('active')
function getProductData(productId, callback) {
$.ajax({...})
.success(function( msg ) {
callback(msg);
})
.error(function () {...});
}
function addToCart(productId) {
getProductData(productId, function(product) {
if($(product).prop('slug') in cart){...}
else {...}
});
}
что за проблемавы вешаете обработчик события на элемент, которого не существует в тот момент, в который вы этот обработчик собственно вешаете.
$('body').on('click', '.mobil', function() {
$(this).css('background', 'blue');
});
$('.block').click(function() {
if ( $(this).hasClass('mobil') ) {
$(this).css('background', 'blue');
}
});
// repl.js
const repl = require('repl');
repl.start();
то можно с помощью .clear
node repl.js
> var a = 5;
undefined
> a
5
> .clear
Clearing context...
> a
ReferenceError: a is not defined
at repl:1:1
at ContextifyScript.Script.runInContext (vm.js:32:29)
at REPLServer.defaultEval (repl.js:342:29)
at bound (domain.js:280:14)
at REPLServer.runBound [as eval] (domain.js:293:12)
at REPLServer.onLine (repl.js:537:10)
at emitOne (events.js:96:13)
at REPLServer.emit (events.js:189:7)
at REPLServer.Interface._onLine (readline.js:238:10)
at REPLServer.Interface._line (readline.js:582:8)
function laugh(num) {
return num !== 0 ? 'ha' + laugh(--num) : '!';
}
console.log(laugh(3)); // 'hahaha!'
overflow: hidden, font-size, line-height, max-height: calc(a * b)
где:<div class="text">Lorem ipsum dolor sit amet, consectetur adipisicing elit...</div>
.text {
overflow: hidden;
font-size: 16px;
line-height: 1.5;
max-height: calc(1.5em * 5);
}
background: url('image.png') no-repeat 50% 50px/500px auto;
background-image: url('image.png');
background-repeat: no-repeat;
background-position: 50% 50px;
background-size: 500px auto;
function assignLocation(siteUrl, urlParams) {
function serializeParams(params) {
return Object.keys(urlParams).reduce((acc, cur) => {
return acc += `&${ cur }=${ encodeURIComponent(urlParams[cur]) }`;
}, '').replace(/^&/, '');
}
window.location.assign(`${siteUrl}?${serializeParams(urlParams)}`);
}
assignLocation('https://www.site.com/test', {
id: 324,
name: 'Jack',
age: 25,
}); // 'https://www.site.com/test?id=324&name=Jack&age=25'
function makeTree(data) {
return data.reduceRight((acc, cur) => {
return {
name: cur,
children:[acc]
};
}, { name: data.pop() });
}
let dataChapter = 'a/bb/ccc'.split('/');
let root = makeTree(dataChapter);
console.log(JSON.stringify(root, null, 2));
// {
// "name": "a",
// "children": [
// {
// "name": "bb",
// "children": [
// {
// "name": "ccc"
// }
// ]
// }
// ]
// }