使用addEventListener更改显示样式

时间:2019-10-02 15:40:17

标签: javascript

我正在尝试学习addEventListener,但不知何故。控制台也不会显示任何错误。

因此,我有以下部分:

<section id="media_image-4" class="widget widget_media_image">
    <div class="widget-wrap">
        <img width="150" height="150" src="https://domains/wp-content/uploads/2019/01/image-150x150.jpg" class="image wp-image-41  attachment-thumbnail size-thumbnail" alt="" style="max-width: 100%; height: auto;" sizes="(max-width: 150px) 100vw, 150px" />
    </div>
</section>

<section id="text-12" class="widget widget_text">
    <div class="widget-wrap"><div class="textwidget">
        <p id="sublinks">
        <img class="alignnone size-full wp-image-833" src="https://domains/wp-content/uploads/2019/09/icon-link.png" alt="" width="16" height="16" data-sitemapexclude="true" />
        </p>
    </div></div>
</section>

默认情况下,部分ID media_image-4用CSS“ display:none”隐藏。我想在单击icon-link.png图像时显示它。因此,我创建了一个外部javascript,并将其命名。该文件是:

var mID = document.getElementById ("sublinks");
mID.addEventListener ("click", function() {
  var x = document.getElementById("media_image-4");
    if ( x.style.display == "none" || x.style.display == "") {
        x.style.display = "inline-block";
    } else {
        x.style.display = "";
    }
}, false);

我做错了什么吗?我应该怎么做才能显示media_image-4? 请指教。谢谢。

1 个答案:

答案 0 :(得分:1)

代替

else {
    x.style.display = "";
}

else {
    x.style.display = "none";
}

否则一切都很好

但是最好通过指定的类解决它

CSS:

#media_image-4 {
   display: none;
}

#media_image-4.showMe {
   display:inline-block;
}

和JS代码

document.getElementById ("sublinks").addEventListener ("click", () => {
   document.getElementById("media_image-4").classList.toggle('showMe')
}, false);
相关问题