javascript - 如何将生成的元素放置在原始按钮/链接旁边?

标签 javascript jquery html css menu

我想在点击“社交”链接后,在同一个“社交”链接的左侧显示“社交”链接生成的三个社交元素。

所以,我想在点击“社交”后在同一行中得到这个:

FACEBOOK TWITTER 电子邮件社交

预先感谢您的帮助!

$(document).ready(function () {
    $(".icon-social-1", this).on("click", function (e) {
        e.preventDefault();
        $(this).siblings(".subicons").toggle();
    });
});
a.trigger {
    color:#000;
    cursor:pointer;
    display:block;
    margin-bottom:10px;
    text-decoration:none;
}
.subicons
 {
    display:none;
}

li.list{
display:inline;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p><strong>Show/hide on click:</strong></p>
<div class="socials click">
    <ul>
        <li>
            <a href="" class="icon icon-social icon-social-1"><i>Social</i></a>
            <ul class="subicons">
                <li class="list"><a href="" target="_blank" class="">Facebook</a></li>
                <li class="list"><a href="" target="_blank" class="">Twitter</a></li>
                <li class="list"><a href="" target="_blank" class="">e-mail</a></li>
            </ul>
        </li>
    </ul>
</div>

最佳答案

jQuery 的 toggle() 函数显示带有 CSS display: block 属性的元素,这不会实现您想要的。请改用 css() 函数或 toggleClass() 函数。

JavaScript:

$(this).siblings(".subicons").toggleClass('hide');

CSS:

.subicons{
  display:inline;
  padding-left:0;
}
.subicons.hide {
  display:none;
}

$(document).ready(function () {
    $(".icon-social-1", this).on("click", function (e) {
        e.preventDefault();
        $(this).siblings(".subicons").toggleClass('hide');
    });
});
a.trigger {
    color:#000;
    cursor:pointer;
    display:block;
    margin-bottom:10px;
    text-decoration:none;
}
.subicons
 {
    display:inline;
    padding-left:0;
}
.subicons.hide
 {
    display:none;
}

li.list{
display:inline;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p><strong>Show/hide on click:</strong></p>
<div class="socials click">
    <ul>
        <li>
            <ul class="subicons hide">
                <li class="list"><a href="" target="_blank" class="">Facebook</a></li>
                <li class="list"><a href="" target="_blank" class="">Twitter</a></li>
                <li class="list"><a href="" target="_blank" class="">e-mail</a></li>
            </ul>
            <a href="" class="icon icon-social icon-social-1"><i>Social</i></a>
        </li>
    </ul>
</div>

关于javascript - 如何将生成的元素放置在原始按钮/链接旁边?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47032060/

相关文章:

javascript - 根据标题选择行

javascript - 单击超链接并更改 ID 的 CSS

jquery - mouseleave 在 parent 身上

jQuery 可扩展网格(2 列)

javascript - 如何在 jquery 列表中动态添加 <li> 标签?

javascript - 如何使用javascript隐藏一个类?

javascript - socket.io - socket.on 等待 promise

html - 内联 &lt;input&gt; 和 <div> 未垂直对齐,但高度相同

jquery - 延迟 CSS 动画直到动画的容器 div 在视口(viewport)中

javascript - 使用 ngTouch 定义触摸事件区域