2016-07-31 2 views
0

У меня есть кнопка, которую можно щелкнуть. Я хочу динамически накладывать на нее надпись, которая также доступна для кликов. Когда наложение сверху и щелкнуло, я хочу, чтобы оверлей onclick запускался, и кнопка onclick запускалась.создать кликабельный оверлей и нажать и перейти к кнопке также

Прямо сейчас, если я накладываю сверху сверху на обработчик onclick, клик не переходит к кнопке внизу. Если я использую pointerEvents = "none" на наложении, тогда клик проходит, но не вызывает наложение onclick.

Как я могу заставить оба onclicks запускать, когда наложение сверху?

<html><body> 

    <input type=button value=clickme style="position:absolute;top:50px;left:25px;z-index:-1" onclick="alert('button')" > 
    </body></html> 

    <script> 


    function createDiv(){ 
     alert("creating div"); 
     divTag = document.createElement("div"); 
     divTag.id="overlay"; 
     document.body.appendChild(divTag); 
     divTag.setAttribute("onclick","alert('overlay')"); 
     divTag.style.backgroundColor="rgba(255, 255, 0, 0.5)"; 
     divTag.style.top="0px"; 
     divTag.style.left="0px"; 
     divTag.style.width="100px"; 
     divTag.style.height="100px"; 
     divTag.style.zIndex=100; 
     //divTag.style.pointerEvents="none"; 
     //divTag.style.pointerEvents="auto"; 

    } 
    setTimeout(createDiv,2000); 
    </script> 

https://jsfiddle.net/q6Levpds/

ответ

0

Это просто, не касайтесь z-index кнопки, и установите накладку z-index -1

JS: 

function createDiv(){ 
    alert("creating div"); 
    divTag = document.createElement("div"); 
    divTag.id="overlay"; 
    document.body.appendChild(divTag); 
    divTag.setAttribute("onclick","alert('overlay')"); 
    divTag.style.backgroundColor="rgba(255, 255, 0, 0.5)"; 
    divTag.style.top="0px"; 
    divTag.style.left="0px"; 
    divTag.style.width="100px"; 
    divTag.style.height="100px"; 
    divTag.style.zIndex=-1; 
    //divTag.style.pointerEvents="none"; 
    //divTag.style.pointerEvents="auto"; 

} 
setTimeout(createDiv,2000); 

HTML:

<body> 
<input type=button value="clickme" style="position:absolute;top:50px;left:25px" onclick="alert('button')" /> 
</body> 

https://jsfiddle.net/q6Levpds/1/

+0

В вашем измененном примере, по крайней мере, на firefox наложение находится за кнопкой, и только нажатие кнопки запускается. Я также пытался получить оверлейный щелчок. – techdog

+0

@techdog вы хотите активировать оверлейный щелчок при нажатии кнопки –

Смежные вопросы