Как я могу сделать нажатие кнопки, когда я просто нажимаю div - PullRequest
0 голосов
/ 13 мая 2018
    <div id="mydiv"><div>
    <button style="visibility:hidden; float:left"></button>

Я хочу сделать скрытую кнопку, которую нажимают, когда кто-то нажимает на div "mydiv".

Ответы [ 4 ]

0 голосов
/ 13 мая 2018

С помощью jQuery вы можете сделать что-то вроде этого:

$('#div_id').click(function(){$('#btn_id').trigger('click');});

$('#btn_id').click(function(){//Business logic here on btn click
});
0 голосов
/ 13 мая 2018

Как сказал AndrewL , вам не нужна кнопка для этого. Но если вы все равно хотите использовать кнопку, просто присвойте своему диву eventListener, имитирующий нажатие кнопки:

document.querySelector('#mydiv').addEventListener('click', () => {
    document.querySelector('button').click();
});

Пример

(я добавил несколько правил CSS и дополнительную функцию для визуализации.)

document.querySelector('#mydiv').addEventListener('click', () => { // Listen for clicks on the div
  document.querySelector('button').click(); // Simulate a click on the button
});

function test() { // This function gets called when clicking the button
  console.log("Click!");
}
<div id="mydiv" style="height: 100px; width: 100px; background-color: red;">
  <div>
    <button style=" visibility:hidden; float:left; " onclick="test()"></button>
  </div>
</div>
0 голосов
/ 13 мая 2018

Вам не нужна скрытая кнопка, чтобы поймать событие клика. Но если вам это действительно нужно:

<div id="mydiv" onclick="document.getElementById('btn').click()">click on me<div>
    <button id="btn" style="display:none;" ></button>
0 голосов
/ 13 мая 2018

Вам не нужна скрытая кнопка для этого.Просто назначьте прослушиватель кликов для самого div, используя js, например:

const btn = document.getElementById('mydiv');

function doSomething(){
    //run your script here when div is clicked
}

btn.addEventListener('click', doSomething);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...