我试图创建一个像Facebook一样的React系统,但是有一个问题我无法解决。所以,让我们来解释一下我的html是什么样子的。有一个主div,包含一个link元素**(<a></a>
)**,用于默认的like图标悬停和打开React,还有一个div,包含React。如下所示:
<div class="post__actions-inner">
<div id="act-reactions" class="container">
<div class="content">
<div class="emoji">
<div class="hello">
<a class="emoticon-0" href="#/"></a>
<p>Like</p>
</div>
<div class="hello">
<a class="emoticon-1" href="#/"></a>
<p>love</p>
</div>
<div class="hello">
<a class="emoticon-2" href="#/"></a>
<p>Haha</p>
</div>
<div class="hello">
<a class="emoticon-3" href="#/"></a>
<p>Wink</p>
</div>
<div class="hello">
<a class="emoticon-4" href="#/"></a>
<p>Wow</p>
</div>
<div class="hello">
<a class="emoticon-5" href="#/"></a>
<p>Sad</p>
</div>
<div class="hello">
<a class="emoticon-6" href="#/"></a>
<p>Angry</p>
</div>
<div class="hello">
<a class="emoticon-7" href="#/"></a>
<p>Crazy</p>
</div>
<div class="hello">
<a class="emoticon-8" href="#/"></a>
<p>Speechless</p>
</div>
<div class="hello">
<a class="emoticon-9" href="#/"></a>
<p>Grateful</p>
</div>
<div class="hello">
<a class="emoticon-10" href="#/"></a>
<p>Celebrate</p>
</div>
<div class="hello">
<a class="emoticon-11" href="#/"></a>
<p>Heartbroken</p>
</div>
<div class="hello">
<a class="emoticon-12" href="#/"></a>
<p>Evil</p>
</div>
<div class="hello">
<a class="emoticon-13" href="#/"></a>
<p>Embarassed</p>
</div>
</div>
</div>
</div>
<a id="default-like-2288" href="#/" class="post__action post__action--reaction reaction reaction__toggle reaction-toggle--2288 reaction-emoticon-0 js-reaction-toggle" style="display: block;" data-id="2288">
<span>Like</span>
</a>
</div>
所以,我尝试做的是显示当我悬停在默认值上时的React,如。我尝试使用两个querySelectorAll,一个在另一个里面,但它对这个问题没有帮助。
document.querySelectorAll('.post__action--reaction.container').forEach(elem => elem.addEventListener("mouseenter", () => {
var container = document.querySelectorAll('.container').forEach(elem => elem.addEventListener("mouseenter", () => {
container.style.display = "block";
}));
}));
我能做些什么来解决这个问题?提前感谢!!
2条答案
按热度按时间cvxl0en21#
首先,.“post__action--reaction.container”不是正确的选择器。如果您尝试将事件侦听器添加到默认的“类似”按钮,则应该侦听"#default-like-2288“或仅侦听.”post__action--reaction“。
我假设你会有多个默认的按钮和容器。你可以使用下面的逻辑显示和隐藏.container元素,
omjgkv6w2#
我认为你的方法有点过于复杂了。看起来你有一个一致的标签结构等等...所以我建议把每一组
like button
和emoji
放在一个容器里,然后用querySelectorAll()
来抓取每个容器。你可以迭代每个容器,通过切换类来改变它的children
的可见性。我已经包含了一个示例,我认为它采用了一种非常简单的普通JS方法。