事件仅在单击两次时激活
Event only activate when clicked twice
我正在使用jQuery在我的HTML页面上隐藏/显示侧边栏。按下<li>
元素时,.toggle("slide")
事件将激活。
<div class="sidebar" id="SideBar"></div>
<!-- elsewhere in code... -->
<li style="//Styling li Button." id="toggle-bar" onclick="toggleEvent();">toggle bar</li>
{
$("#toggle-bar").click(function(){
$("#SideBar").stop().toggle("slide"); // for left to right slide.
});
}
我曾经使用.stop()
在一张幻灯片效果后停止动画,但动画仅在用户首先关注<li>
元素(通过单击它)时发生。
所以,请告诉我如何一键触发动画
假设你展示的 JS 代码是 toggleEvent()
函数的代码块,如下所示:
function toggleEvent() {
$("#toggle-bar").click(function(){
$("#SideBar").stop().toggle("slide"); // for left to right slide.
});
}
问题是,在第一次单击元素时,您附加了事件处理程序。然后在后续单击时附加另一个事件处理程序,并运行任何以前的事件处理程序。这就是为什么它只能在第一次点击后工作。
要实现所需的内容,您可以完全删除 onclick
属性,并直接通过 JS 附加事件处理程序。试试这个:
<li style="" id="toggle-bar">toggle bar</li>
$(function() {
$("#toggle-bar").click(function(){
$("#SideBar").stop().toggle("slide"); // for left to right slide.
});
});
我有点困惑为什么你在同一元素上一起使用html onclick
和jquery的.click()
。
我建议从 html 中删除onclick
并删除.stop()
调用,这样您的动画就会被调用一次,而不是两次。正如其他评论所提到的,最好知道function toggleEvent()
是什么,以便我们可以提供更准确的答案。
您的网页:
<div class="sidebar" id="SideBar"></div>
<!-- elsewhere in code... -->
<li style="//Styling li Button." id="toggle-bar">toggle bar</li>
你的JavaScript:
$("#toggle-bar").click(function(){
$("#SideBar").toggle("slide"); // for left to right slide.
});
或者,如果您需要运行function toggleEvent()
,您的 JavaScript 可能如下所示:
$("#toggle-bar").click(toggleEvent);
相关文章:
- Meteor Router数据函数被调用两次
- 从MySQL数据库中获取输入数据需要两次页面刷新
- Module.start()已激发两次
- Jquery点击事件必须点击两次
- Append元素在运行两次函数后不显示
- 防止双击执行两次jQuery post请求
- 我必须点击两次才能激活任何按钮操作(离子/角度)
- 单击jQuery会激发两次
- 如何避免在树上走两次
- button.单击两次删除附加操作后不工作
- 由于$compile,Javascript(Angular)嵌套指令加载了两次
- 单击元素两次后执行操作
- AngularJs正在阻止链接被点击两次
- 我必须点击两次才能使用jQuery激活函数
- 事件仅在单击两次时激活
- 杜兰达尔 - 在大纲详细信息示例中调用了两次激活
- 单击链接两次以使用ui路由器激活状态
- 当点击链接两次而不是一次时,Lightbox会激活
- 为什么绑定事件在jQuery中激活两次
- 为什么侦听器激活两次