Object.defineProperty(window /*- объект, где располагается свойство */, "my_var" /* - свойство, которое нужно опекать */,
{
get: function() // сторожим чтение значения
{
alert('Кто-то прочилал my_var!');
},
set: function(newValue) // сторожим запись значения
{
alert('Кто-то записал my_var! Новое значение: ' + newValue);
}
});
my_var = 123456; // пробуем записать что-то
you_var = my_var; // пробуем извлечь значение <a id="my_link" href="https://vk.com/durov" target="_blank" style="display: none;">
<img src="img/57d3d0a9e386c157136717cc.png" width="30px"/>
</a>
<input type = "button" onclick = "document.getElementById('my_link').style.display = 'inline';" value = "связаться со мной" /> var node = this; // в ноду кладем текущий элемент Element;
// начинаем примерять селектор, двигаясь от текущего элемента к его родителям
while (node) // пока есть элемент (не null) (или на предыдущей итерации провалили матч и есть родитель)
{
if (node.matches(css)) // подходит селектор элементу ?
return node; // возвращаем этот элемент, цикл останавливается
else
node = node.parentElement; // не подошло, устанавливаем на node родительский элемент, идем на следующую итерацию.
}
return null; // цикл прошелся по всем родителям - ничего не нашлиElement.prototype.closest = function (css)Element.prototype.matches = Element.prototype.matchesSelector || <подставьте любой метод, чтобы делал матч, но назывался не как у всех> <style>
#elem1
{
display: block;
width: 400px;
height: 400px;
background-image: url("back1.png"),
url("back2.png");
transition: background-image 0.5s ease; /* для наглядности эффекта */
}
</style>
<div id="elem1"></div>
<script>
var trigger = 0;
setInterval(function()
{
var elem1 = document.getElementById('elem1');
elem1.style.backgroundImage = trigger % 2 == 1 ? 'url("back1.png"), url("back2.png")' : 'url("back2.png"), url("back1.png")';
trigger++;
}, 1000);
</script> pole.onclick = function(e)
{
if(e.target.getAttribute('class') != 'pole-blue')
{
e.target.setAttribute('class', 'pole-blue');
}
}var pole = null;
for(var i = 0;i<10;i++)
{
pole = document.createElement('div');