jquery 仅在第二次单击时触发

标签 jquery css

我有一个下拉框,当我单击它时,箭头会旋转。然而,箭头只在第二次单击时旋转。我做错了什么?

<div class="dropdown">
 <a onclick="UserdropDownDetails()"><div class="triangle1"></div></a>
  <div id="myDropdown" class="dropdown-content ">
    <ul>
     // drop down elements
    </ul>
  </div>
</div>

CSS

.triangle1 {
    width: 0;
    height: 0;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-top: 10px solid #cecece;
    margin-left: -10px;
    transition: .5s ease;
}

.triangle-up {
    transform: rotate(180deg);
}

代码:

function flipTriangle() {
                $('.triangle1').on('click', function () {
                    $(this).toggleClass("triangle-up");  //this flips my image but its only working if i click it twice.
                });
            }

function UserdropDownDetails() {
            flipTriangle(); i need this to fire the first time its clicked
            document.getElementById("myDropdown").classList.toggle("show"); //this shows my drop down,which works fine.

        }

我做错了什么?

最佳答案

您正在函数 flipTriangle 中绑定(bind)事件处理程序,因此该事件会在第一次单击时附加,从而在第二次单击时起作用。

将代码移到函数之外。

$(function () {
    $('.triangle1').on('click', function () {
        $(this).toggleClass("triangle-up"); //this flips my image but its only working if i click it twice.
    });
});

关于jquery 仅在第二次单击时触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47694483/

相关文章:

javascript - html 中的附加值没有出现在我期望的位置

javascript - jQuery DataTables RowReordering 插件 - 关于更改事件?

javascript - 位置替换太慢

javascript - 是否可以使用常规的 CSS 来实现这种呈现方式?

javascript - 尝试使用jQuery使模态数据动态化

jquery - 将 css 转换为复选框的 jquery css

javascript - 在 div 内捏合/缩放但不是整个页面

html - 在移动设备上堆叠的水平框 - 以图像、标题文本和详细信息文本为中心

javascript - 滚动是锯齿状的,并在 iOS 上立即停止

javascript - HTML/CSS - 如何在输入字段末尾显示透明文本片段