为什么addEventListener不起作用?

时间:2018-01-19 02:45:35

标签: javascript html css semantic-ui addeventlistener

我正在编写代码以将事件监听器添加到我的所有图像中,这样当悬停在上面时,会显示一个标签。图像及其附带标签都在同一个div中,因此我首先尝试选择所有图片。然后,对于每张图片,我得到其父元素的第一个子元素(图片的兄弟姐妹,标签)。然后,我将一个事件监听器附加到图片上,并在label元素中传递一个函数,该函数会更改标签的显示属性,而不是' none'到'内联块'。

我的代码不会抛出任何错误,但是当它运行时,它会记录' el:'之后没有任何事情。我做错了什么?

谢谢!



function displayLabel(el) {
  console.log("el: " + el)
  el.style.display = 'inline block'
}

var autProPics = document.getElementsByClassName("authorprofilepic");
console.log(autProPics)

for (var i = 0; i < autProPics.length; i++) {
  var pel = autProPics[i].parentElement
  var el = pel.firstElementChild
  autProPics[i].addEventListener('mouseenter', function (){
    displayLabel(el)
})
}
&#13;
.authorprofilepic {
  display: block !important;
  width: 4em !important;
  margin: auto;
  margin-top: .5em;
}

body {
  background-color: rgb(221,221,221);
}

.authorprofile {
  padding-top: 1em;
  display: inline-block;
  width: 5em;
}

.authorprofilelabel {
  display: none !important;
  margin: auto !important;
  max-width: 12em !important;
}
&#13;
<DOCTYPE html>
<html>
<head>
<link href="https://cdn.jsdelivr.net/npm/semantic-ui@2.2.13/dist/semantic.min.css" rel="stylesheet"/>
</head>
<body>
<div class="authorprofile">
<a class="ui basic label authorprofilelabel">Ben Gubler</a>
  <a href="#" class="ui image authorprofilepic inline circular">
    <img src="https://semantic-ui.com/images/wireframe/square-image.png">
  </a>
  </div>
<div class="authorprofile">
<a class="ui basic label authorprofilelabel">Ben Gubler</a>
  <a href="#" class="ui image authorprofilepic inline circular">
    <img src="https://semantic-ui.com/images/wireframe/square-image.png">
  </a>
  </div>
<div class="authorprofile">
<a class="ui basic label authorprofilelabel">Ben Gubler</a>
  <a href="#" class="ui image authorprofilepic inline circular">
    <img src="https://semantic-ui.com/images/wireframe/square-image.png">
  </a>
  </div>
<div class="authorprofile">
<a class="ui basic label authorprofilelabel">Ben Gubler</a>
  <a href="#" class="ui image authorprofilepic inline circular">
    <img src="https://semantic-ui.com/images/wireframe/square-image.png">
  </a>
  </div>
<i class="ui plus icon link huge"></i>
</body>
</html>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

我不确定,但我没看到

  • script标记您的html文件中的任何位置。也许你应该链接你的 **带有** html **代码的Javascript **文件,

  • 之后根据onhoverimg标记添加方法label 你的要求。

**我是新手,请原谅,如果我错了。 **