组合多个 onClick 事件

Posted

技术标签:

【中文标题】组合多个 onClick 事件【英文标题】:Combining multiple onClick events 【发布时间】:2017-10-10 20:28:42 【问题描述】:

我对 javascript 非常陌生,我正在努力完成我正在尝试做的某项任务。我在搜索中遇到了这两个,但与我的问题无关。

Multiple onclick events in Javascript/html

Can I create multiple onclick events dynamically?

所以这就是我所拥有的。我有图标,如果您单击它们,它们会执行某个 onClick 事件。我正在尝试将它们组合起来,所以如果你切换它们,图标会发生变化,我已经完成了图标的切换。

 onClick="$(this).find('i').attr('class', ($(this).attr('aria-expanded') == 'false' ? 'fa fa-times-circle-o' : 'fa fa-play-circle-o'));" 

现在我陷入了困境,而我的研究却一无所获。我需要将 onClick 函数添加到图标中,但我不知道如何实现这一点。

所以当点击 fa fa-play-circle-o 时会触发 triggerRadarAnimation();并且图标将切换到fa fa-times-circle-o,当按下该图标时,它将触发radarAnimateKill();并切换回另一个图标。

我有切换功能,只是不确定如何将上面的这些功能添加到切换功能中。关于我在哪里可以找到解决方案的任何指导?

【问题讨论】:

您能否提供更多代码,因为您的问题含糊不清,并尝试添加 js 函数而不是在元素中编写 js 【参考方案1】:

由于您使用的是 jQuery,您可以尝试以下方法:

 // Bind a click handler that can perform logic in its handler
 $(selectorString).click(function(event)
   // Toggle both classes, so we get the right state
   $(this)
     .find('i')
     .toggleClass('fa-play-circle-o')
     .toggleClass('fa-times-circle-o');

   // Check which class is currently applied, and run the appropriate 
   // animation.
   if($($(this).find('i')).hasClass('fa-times-circle-o')) 
     triggerRadarAnimation();
    else 
     radarAnimateKill();
   
 )

【讨论】:

以上是关于组合多个 onClick 事件的主要内容,如果未能解决你的问题,请参考以下文章

单个 div 上的多个 onclick 事件 - 更改 div 边框颜色 - javascript

用JS实现一个表单多个按钮的方法,两个onclick事件处理

addEventListener与onclick的区别

动态创建 onclick 事件锚元素 - Javascript

关于onclick事件中的参数传递问题

如何将多个 onClick 事件链接到 HTML 中的一个元素?我可以让他们改变href吗?