Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Ситуевина с dblClick. (https://javascript.ru/forum/events/7781-situevina-s-dblclick.html)

limonad 19.02.2010 10:51

Ситуевина с dblClick.
 
Можно ли как-то заставить срабатывать dblClick на примере этой страницы?
Работает в IE & Opera. В FF,Chrome,Safari не работает.

Код страницы примера:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html dir='ltr' xmlns='http://www.w3.org/1999/xhtml' xmlns:b='http://www.google.com/2005/gml/b' xmlns:data='http://www.google.com/2005/gml/data' xmlns:expr='http://www.google.com/2005/gml/expr'>
<head>

    <title></title>

<style type="text/css">    
#d1
{
    position:absolute;
    left:100px;
    top:100px;
    width:100px;
    height:100px;
    background:#336699;
    z-index:10;
}    

#d2
{
    position:absolute;
    left:100px;
    top:100px;
    width:100px;
    height:100px;
    background:#ff0000;
    z-index:20;
}    

</style>

</head>
<body>

Сделайте dblclick по синему квадрату.
<br />
В IE, Opera всплывает alert, а в FF, Chrome, Safari не работает.

<div id="d1" ondblclick="alert('DBLCLICK')" ></div>
<div id="d2" style="display:none;"></div>


<script language="javascript" type="text/javascript">
    document.onmousedown = function() { document.getElementById('d2').style.display = 'block'; return true; }
    document.onmouseup = function() { document.getElementById('d2').style.display = 'none'; return true; }
</script>
    
</body>
</html>

micscr 19.02.2010 17:19

да, интересный момент. Мои познания в тонкостях работы с событиями остановились только на том чтобы задержку поставить, что конечно не то. limonad, если узнаете решение и главное подоплеку - пишите.:)

subzey 19.02.2010 18:06

Цитата:

A click is defined as a mousedown and mouseup over the same screen location.



Цитата:

A pointing device button is clicked over an element. The definition of a click depends on the environment configuration; i.e. it may depend on the screen location or the delay between the press and release of the pointing device button. In any case, the event target must be the same between the mousedown, mouseup, and click.


Обратите внимание на различие в определении щелчка между действующей документацие DOM2 и черновиком DOM3: в DOM2 щелчок — mousedown и mouseup в одном и том же месте, в DOM3 — над одним и тем же элементом.

limonad 19.02.2010 18:34

Еще один момент. Если у блока d2 position:fixed, а не absolute, то в FF тоже начинает работать. В Chrome и Safari не работает. Правда какое-то странное выделение блока с текстом происходит на странице. Т.е. получается, что браузер это событие распознает, а вот нижний блок нет. Есть идеи?


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