Button 单击HTML按钮的内容时,OnClick事件不会在该按钮上触发

Button 单击HTML按钮的内容时,OnClick事件不会在该按钮上触发,button,onclick,Button,Onclick,我的HTML按钮的onClick事件仅在我单击按钮本身时触发,而不是在我单击按钮内的文本或图像时触发-例如,如果单击按钮的下灰色部分,事件将触发,如果单击文本“Legenda”,事件将不会触发 如何通过单击按钮内的文本或图像来触发此事件 HTML: JS: 请参阅本文中的代码。当您单击按钮内的文本或图像时,实际上是在window.onclick内调用js函数,这将删除div类。您可以为按钮添加ID并添加事件侦听器 函数下拉列表{ document.getElementByIdmyDropdo

我的HTML按钮的onClick事件仅在我单击按钮本身时触发,而不是在我单击按钮内的文本或图像时触发-例如,如果单击按钮的下灰色部分,事件将触发,如果单击文本“Legenda”,事件将不会触发

如何通过单击按钮内的文本或图像来触发此事件

HTML:

JS:


请参阅本文中的代码。

当您单击按钮内的文本或图像时,实际上是在window.onclick内调用js函数,这将删除div类。您可以为按钮添加ID并添加事件侦听器

函数下拉列表{ document.getElementByIdmyDropdown.classList.toggleshow,true; } window.addEventListener'click',函数{ if!document.getElementById'btnID'.containse.target{ 如果!event.target.matches'.dropbtn'{ var dropdowns=document.getElementsByClassNamedropdown-content; var i; 对于i=0;i
谢谢你的轻松修复!
<button onclick="dropdown()" class="ui-button ui-widget ui-corner-all dropbtn"><img class="legendaicon" src="images/legend-01.png"><span style="vertical-align:super">Legenda</span></button>
  <div id="myDropdown" class="dropdown-content">
    <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>
  </div>
</div>
#legenda {
right: 0.5%;
margin-top: 0.5%;
z-index: 2000;
position: absolute;

}

.legendaicon {
    height: 25px;
    margin-right: 5px;
}

.dropdown-content {
    display: none;
    position: absolute;
    background-color: #f1f1f1;
    min-width: 160px;
    box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
    z-index: 1;
    float: right;
}

.dropdown-content p {
    color: black;
    padding: 12px 16px;
    text-decoration: none;
    display: block;
    right: 0;
}

.show {
    display: block;
}
/* When the user clicks on the button, 
toggle between hiding and showing the dropdown content */
function dropdown() {
    document.getElementById("myDropdown").classList.toggle("show");
}

// Close the dropdown menu if the user clicks outside of it
window.onclick = function (event) {
    if (!event.target.matches('.dropbtn')) {

        var dropdowns = document.getElementsByClassName("dropdown-content");
        var i;
        for (i = 0; i < dropdowns.length; i++) {
            var openDropdown = dropdowns[i];
            if (openDropdown.classList.contains('show')) {
                openDropdown.classList.remove('show');
            }
        }
    }
}