【问题标题】:On click function not working for dropdown menu (JavaScript)点击功能不适用于下拉菜单(JavaScript)
【发布时间】:2020-12-21 20:10:58
【问题描述】:
(".menu_nav").click(function(){
        
        gsap.to(".hiddenmenu", .5, { opacity:1, height:"100%"});
        $(".menu_nav img").attr("src", "...").addClass("menu_close");
        $(".menu_nav").css({ 'color': 'white'});
        gsap.to(".center", .4, { opacity:1, visibility:"visible", delay:.6});
        
    });
    
    
     $(".menu_close").click(function(){
        
        gsap.to(".hiddenmenu", .5, { opacity:0, height:"0%"});
        $(".menu_nav img").attr("src", "...");
        $(".menu_nav").css({ 'color': 'white'});
        gsap.to(".center", .4, { opacity:0, visibility:"hidden", delay:.6});
        
    });

出于隐私目的,我删除了 src。每当我想关闭下拉菜单时,菜单关闭功能都不起作用。当我点击菜单时,它会打开但不会关闭。

【问题讨论】:

  • 为什么不直接使用带有转换的 css 类?
  • 最好事先创建动画并使用控制方法在事件侦听器中控制它们,如my article about animating efficiently 建议的那样。

标签: javascript jquery event-handling click gsap


【解决方案1】:

由于我不确定您的 .menu_close 类应用于哪个 html 元素。我创建的这个 sn-p 确实适合您的审核。

    
    $( document ).ready(function() {
  // Handler for .ready() called.
   $(".menu_close").click(function(){
        
      alert('Closed!');
        
    });
});
.menu_close{}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
<a href class="menu_close">Close</a>
</div>

【讨论】:

  • 感谢您的回复,我将其附加到 menu_nav img
【解决方案2】:
$(".menu_nav").click(function() {
  gsap.to(".hiddenmenu", .5, {
    opacity: 1,
    height: "100%"
  });
  
  $(".menu_nav img").attr("src", "...");
  $(".menu_nav img").addClass("menu_close");
  $(".menu_nav").css({
    'color': 'white'
  });
  
  gsap.to(".center", .4, {
    opacity: 1,
    visibility: "visible",
    delay: .6
  });
});


$(".menu_close").click(function() {
  gsap.to(".hiddenmenu", .5, {
    opacity: 0,
    height: "0%"
  });
  
  $(".menu_nav img").attr("src", "...");
  $(".menu_nav img").addClass("menu_close");
  $(".menu_nav").css({
    'color': 'white'
  });
  
  gsap.to(".center", .4, {
    opacity: 0,
    visibility: "hidden",
    delay: .6
  });
});

【讨论】:

  • 感谢您的回复。现在进行更改后,第一个功能不起作用
  • 我会尽快修复@AaronCarrasco。刚刚修复了代码。请让我知道它是否有效
  • jQuery 没有onclick 属性。 OP 对click() 方法的原始使用不是问题。
  • 仍然无法正常工作,是的,我认为 click() 不是问题
  • @RoryMcCrossan 感谢编辑我在它不起作用之前尝试过......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多