window.addEventListener('popstate', function (e) {
var id = e.state ? e.state.count : localStorage.id - 1,
dir = id - localStorage.id;
console.log('Переход ' + (dir > 0 ? 'вперёд' : 'назад') + ', шагов: ' + Math.abs(dir));
localStorage.id = id;
}, false);
document.addEventListener('click', function (e) {
var number = Math.round(Math.random() * 1000);
localStorage.id = (parseInt(localStorage.id) || 1) + 1;
history.pushState({
count: localStorage.id
}, 'title ' + number, '?page=' + number);
}, false);
var Human = function (coords) {
this.top = coords.top || 0;
this.left = coords.left || 0;
};
Human.prototype = {
go: function (coords) {
this.top += coords.top || 0;
this.left += coords.left || 0;
return this;
},
goUp: function () {
return this.go({top: -1});
},
goDown: function () {
return this.go({top: 1});
},
goLeft: function () {
return this.go({left: -1});
},
goRight: function () {
return this.go({left: 1});
}
};
var vagabond = new Human({
top: 2,
left: 2
});
vagabond.goUp().goLeft().goDown().goDown().goRight();
vagabond.go({
top: 0,
left: 0
});
console.log(
getRussian('%C8%EC%FF'),
getRussian('%D1%EE%EE%E1%F9%E5%ED%E8%E5')
);
function getRussian (string) {
return string.replace(/^%/, '').split(/%/).reduce(function (result, value) {
return result += unescape('%u' + ('000' + (parseInt(value, 16) + 848).toString(16)).slice(-4));
}, '');
}
просто читает главную и бац
useful for nested loops
var stop = 7;
label:
for (var i = 10; i--;) {
console.log('i:', i);
for (var j = 10; j--;) {
console.log('j:', j);
if (j == stop) {
console.log('stop');
break label;
}
}
}
console.log('stopped');
$(function(){
var header = $('header'),
main = $('main'),
address = $('address');
$(window).on('resize', function () {
if ($(this).width() > 640) {
if (!address.closest(header).length) {
address.appendTo(header);
console.log('Moving to header');
}
} else {
if (!address.closest(main).length) {
address.appendTo(main);
console.log('Moving to main');
}
}
}).resize();
});
$(document).on('click', селекторы, function (e) {
$(this) // Где регистрировали (чьи селекторы)
$(e.target) // Где реально произошло
});
Пытаюсь сделать это через установку default настроек в главном файле jquery.countdown.js
Мне нужно что-то вроде oninput
как отслеживать изменение текста в input даже если фокус с него не убирается
$(document).on('input', '[data-action="text"]', function () {
var $item = $(this),
value = $item.val();
// А тут творим магию...
});
Обновить лишь часть текста в textarea нельзя
Представить страницу документа как цепочку span'ов (одно слово - один span)
Представить страницу документа как анимацию