Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Javascript-магистрам (https://javascript.ru/forum/events/39108-javascript-magistram.html)

zebra 16.06.2013 16:49

У вас ошибка в 18 строке. "e" не будет существовать для ie.

рони 16.06.2013 16:50

Галерея изображений, делегирование, tooltip
 
делегирование
<!DOCTYPE HTML>
<html>
<head>
  <title>Галерея</title>
  <style>
  body {
  margin: 0;
  padding: 0;
  font: 75%/120% Arial, Helvetica, sans-serif;
}

h2 {
  font: bold 190%/100% Arial, Helvetica, sans-serif;
  margin: 0 0 .2em;
}
h2 em {
  font: normal 80%/100% Arial, Helvetica, sans-serif;
  color: #999999;
}

#largeImg {
  border: solid 1px #ccc;
  width: 550px;
  height: 400px;
  padding: 5px;
}
#thumbs{
  text-align:center;
}
#thumbs a {
  position:relative;
  display:block;
  border: solid 1px #ccc;
  width: 100px;
  height: 100px;
  padding: 3px;
  margin: 2px;
  float: left;
}
#thumbs a:hover {
  border-color: #FF9900;
}
.tooltip{
  border-radius:3px;
  border-bottom-left-radius:0;
  padding:5px;
  color:white;
  z-index:3;
  position:absolute;
  top:-15px;
  right:-15px;
  background:rgba(0,0,0,.6);
}
.tooltip:after{
  content: "";
  position: absolute;
  left: -0.6px;
  bottom: -5px;
  z-index:3;
  -webkit-transform: rotate(0deg) skewX(-14deg);
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-top: 5px solid rgba(0,0,0,.6);
}
p{
  position:relative;
}
  </style>
  <meta charset="utf-8">
</head>

<body>

<p>
  <img id="largeImg" src="https://js.cx/gallery/img1-lg.jpg" alt="Large image">
</p>

<span id="thumbs">
  <!-- При наведении на изображение показывается встроенная подсказка браузера (title) -->
  <a href="https://js.cx/gallery/img2-lg.jpg" title="Image 2"><img src="https://js.cx/gallery/img2-thumb.jpg"></a>
  <a href="https://js.cx/gallery/img3-lg.jpg" title="Image 3"><img src="https://js.cx/gallery/img3-thumb.jpg"></a>
  <a href="https://js.cx/gallery/img4-lg.jpg" title="Image 4"><img src="https://js.cx/gallery/img4-thumb.jpg"></a>
  <a href="https://js.cx/gallery/img5-lg.jpg" title="Image 5"><img src="https://js.cx/gallery/img5-thumb.jpg"></a>
  <a href="https://js.cx/gallery/img6-lg.jpg" title="Image 6"><img src="https://js.cx/gallery/img6-thumb.jpg"></a>
</span>
<script>
var d = document.getElementById("thumbs"),
    e = document.getElementById("largeImg");
 d.onmouseover = function (a) {
     a = a || window.event;
     a = a.target || a.srcElement;
     if ("IMG" == a.tagName) {
         var b = document.createElement("div"),
             c = a.parentNode;
         b.innerHTML = c.title;
         b.className = "tooltip";
         c.appendChild(b);
         a.onmouseout = function () {
             c.removeChild(b)
             this.onmouseout = null
         }
     }
 };
 d.onclick = function (a) {
     a = a || window.event;
     a = a.target || a.srcElement;
     "IMG" == a.tagName && (e.src = a.parentNode.href);
     return false
 };
</script>
</body>
</html>

cyber 16.06.2013 16:58

zebra,
знаю, поэтому и проверяю сначала на event.scrElement так как другие браузеры не вызывают ошибку на него (хотя должны) и тогда можно отказать от лишнего условия проверки event поменяв их местами.
P.s когда писал тот коммент просто не увидел что у автора есть проверка на event

zebra 16.06.2013 17:00

function (e) {
    alert(event);
    
}

Откуда event тогда возьмется в других браузерах кроме ie?

cyber 16.06.2013 17:29

zebra,
VladShestakov999,
как оказалось фишка в том что у хрома есть свойтсво event у window)

zebra 16.06.2013 17:40

Ввел в консоль хрома window.event. Получил undefined :nono:
Хотя да, что-то я провтыкал, оно при событии появляется.

cyber 16.06.2013 17:44

zebra, а я забыл что у меня опера стоит на webkit и подумал что там тоже работает))

cyber 16.06.2013 18:11

в 10 версии лисы все нормально, значить уже в общем не актуально)

VladShestakov999 16.06.2013 22:34

рони, Оригинальное решение)) :)


Часовой пояс GMT +3, время: 20:08.