javascript - jQuery 单击在第二次单击时触发,但在第一次单击时不触发

标签 javascript jquery

我检查了一些其他线程,但似乎找不到与我的代码相符的响应。我的问题是我的点击事件仅在第二次点击时触发,此时它工作正常(第二次点击打开,第三次点击关闭,第四次打开等...)

$('.expand-btn').click(function() {
      var clicks = $(this).data('clicks');
      if (clicks) {
        $('.expand-wrapper').animate({
            right: "0"
        }, 500, function() {

        });
      } else {
        $('.expand-wrapper').animate({
            right: "-325px"
        }, 500, function() {

        });
      }
      $(this).data('clicks', !clicks);
    });

编辑:这是我的 HTML 代码。它的工作原理类似于 this jquery plugin其中 .expand-wrapper 是隐藏在屏幕外的联系表单,.expand-btn 是位于屏幕一侧且可点击的小翻盖。

<div class="expand-wrapper">
    <a href="#" class="expand-btn"><i class="fa fa-envelope-o" aria-hidden="true"></i> Contact</a>
    <div class="expand-form">
        <?php echo do_shortcode('[contact-form-7 id="2173" title="Home 01 Request_no_title"]'); ?>
    </div>
</div>

最佳答案

这听起来像是您的元素上的 data-clicks 属性未初始化的问题(因为您在第一次点击结束时设置它,然后它似乎按预期工作) .

尝试在 .expand-btn 元素上初始化它,如下所示:

<a href="#" class="expand-btn" data-clicks='false'>...</a>

或者,如果您有多个展开按钮元素,则可以在使用 jQuery 加载页面时初始化它们:

$(function(){
     $('.expand-btn').data('clicks',false);
}); 

关于javascript - jQuery 单击在第二次单击时触发,但在第一次单击时不触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40245248/

相关文章:

javascript - 使用 jQuery 从 Web API 检索数据数组

jquery - 工具 slider Z-Index 分层问题

javascript - 为午夜过期的 cookie 编写 Javascript

javascript - 在 React 中将类方法绑定(bind)到 this

javascript - HTML5 Canvas 图像上的嵌入阴影

javascript - 将垂直滚动位置绑定(bind)到计​​数器

javascript - 父 iframe 中的按钮在 iframe 内单击

javascript - 如何确定复选框是否与其初始选中状态不同

javascript - Canvas 2D globalCompositeOperation(打火机)

javascript - Google Maps v3 Direction Renderer 重绘响应