@ivadfox

Как сделать так, что бы div не закрывался по клику на нём?

Есть примерно такой код, необходимо сделать так, что бы div не закрывался по клику на нём.
Разбираюсь довольно плохо, спёр с другого сайта, но для себя применить смог. Так что по возможности - максимально доступно.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<style type='text/css'>
.d {position:absolute;visibility:hidden;border:1px solid #00A;background-color:#EED;padding:2px}
</style>
<script type='text/javascript'>
var info=[], clicked=-1;
// создание массива подсказок:
function init(){
        var i=0;
        while (document.getElementById('sk'+i)!=null){
                info[i]=document.getElementById('sk'+i);
                i++;
        }
}
// массив координат [X,Y]:
function findPos(obj){
        var pos=[0,0];
        if (obj.offsetParent) while (obj.offsetParent){
                pos[0]+=obj.offsetLeft;
                pos[1]+=obj.offsetTop;
                obj=obj.offsetParent;
        }
        else if (obj.x || obj.y){
                if (obj.x) pos[0]+=obj.x;
                if (obj.y) pos[1]+=obj.y;
                }
        return pos;
}
// показать подсказку:
function show(num, e){
        hide();
        var pos=findPos(document.getElementById('skbut'+num));
        info[num].style.visibility='visible';
        info[num].style.left=pos[0]+'px';
        info[num].style.top=pos[1]+25+'px';

    if(clicked!=num){
            if(e.stopPropagation) e.stopPropagation();
            else e.cancelBubble = true;
            if(e.preventDefault) e.preventDefault();
            else e.returnValue = false;
                clicked=num;
        }
        else{
                clicked=-1;
        }
}
// спрятать подсказку:
function hide(){
        for (var i=0; i<info.length; i++) info[i].style.visibility='hidden';
}
</script>
</head>
<body leftmargin='0' topmargin='0' marginheight='0' marginwidth='0' onload='init();' onclick='hide();'>

<!-- Очень хочется вынести контейнеры сюда -->
<div id='sk0' class='d'>000000000</div>
<div id='sk1' class='d'>111111111</div>
<div id='sk2' class='d'>222222222</div>
<div id='sk3' class='d'>333333333</div>
<div id='sk4' class='d'>444444444</div>
<!-- Очень хочется вынести контейнеры сюда -->

<button id='skbut0' onclick="show('0', event);">Button 1</button>
<br><br><center>
<button id='skbut1' onclick="show('1', event);">Button 2</button>
</center><br><br>
<button id='skbut2' onclick="show('2', event);">Button 3</button>
<br><br><center>
<button id='skbut3' onclick="show('3', event);">Button 4</button>
</center><br><br>
<button id='skbut4' onclick="show('4', event);">Button 5</button>
</body>
</html>
  • Вопрос задан
  • 295 просмотров
Пригласить эксперта
Ответы на вопрос 2
не разбирался в вашем коде. но просто попробуйте добавить для этого div-a свойство pointer-events: none в css
Ответ написан
butteff
@butteff
Раз в тысячу лет заправляю свитер в носки
Можно попробовать что-то типа этого:
$('#div').click(function(e) {
e.preventDefault();
});
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы