【问题标题】:Function wont call inside a jquery .click()函数不会在 jquery .click() 中调用
【发布时间】:2015-10-02 22:47:51
【问题描述】:

试图在 .click 事件中调用函数。由于console.log,我知道.click 正在工作。不知道为什么我的功能不起作用。我尝试了其他解决方案,例如 html 中的 onClick() ,但没有成功。

以下是要点击的链接:

<h2 class="logo child"></h2>    
<ul>
    <li><a href="#web" class="nav-link">DEVELOPER</a></li>
    <li><a href="#design" class="nav-link">DESIGNER</a></li>
    <li><a href="#film" class="nav-link">FILM</a></li>
    <li><a href="#portfolio" class="nav-link">PORTFOLIO</a></li>
    <li><a href="#about" class="nav-link">ABOUT</a></li>
</ul>

这里是javascript

$(document).ready(function(){
   function spinLogo()
    {
        $('.logo').css({
            'transition' : '1.5s ease-in-out',
            'transform' : 'rotate(360deg)'
        });
    }
setTimeout(function(){
    spinLogo();
}, 1000)

$('.nav-link').click(function()
    {
        spinLogo();
    });
});

我在页面加载时调用该函数,它可以正常工作。

编辑

我在代码中添加了我的徽标。

【问题讨论】:

  • 首先,您的 html 中没有 .logo...
  • 带有 class= logo 的 html 元素在哪里?
  • edit 这个问题包含minimal reproducible example。没有这个,这个问题对于 Stack Overflow 来说是题外话。
  • 您在另一个函数的范围内声明该函数,但在单击处理程序中将其作为全局函数调用。您是否尝试过将 spinLogo 定义移到就绪处理程序之外?
  • 函数被正确调用。问题在于将transform 设置为rotate(360deg) 两次不会让它旋转两次。

标签: javascript jquery html


【解决方案1】:

将转换放在 .logo 类定义中,并将转换放在单独的类中,然后在单击 .nav 链接时将该类名称添加到 logo 元素中。您可以在超时后删除该类。

【讨论】:

  • 非常感谢。我很感激这个答案。效果很好。
猜你喜欢
  • 2014-04-16
  • 2010-10-01
  • 2015-12-29
  • 1970-01-01
  • 1970-01-01
  • 2015-02-18
  • 1970-01-01
  • 2018-05-06
  • 1970-01-01
相关资源
最近更新 更多