JQuery Toggle可在第一次单击时工作,但不能再次单击(如预期)
JQuery Toggle works on first click but not again (as expected)
我正在创建一个div,它通过单击另一个元素来显示(切换)。
当我单击一个锚点(#toggle-contents
)时,它应该显示出来,如果我单击同一个锚点或文档中的其他位置,它应该隐藏起来。
我正在遵循这个操作指南中的代码:使用jQuery进行创造性覆盖/弹出。
它目前是第一次被点击时工作的,但不久之后它就会被显示和隐藏。
标记:
<div id="block-header">
<a id="trigger-contents">Toggle</a>
</div>
<div id="block-contents">
</div>
javascript:
function registerToggleDiv( trigger, toggle )
{
$( '#' + trigger ).click(function()
{
$( '#' + toggle ).toggle(function()
{
console.log('toggle');
$(document).click(function(event)
{
if ( !($(event.target).is('#' + toggle ) ||
$(event.target).parents('#' + toggle ).length ||
$(event.target).is( '#' + trigger )))
{
console.log('toggle hide');
$('#' + toggle ).hide(500);
}
});
});
});
}
registerToggleDiv( 'trigger-contents', 'block-contents' );
我试图在这里找到与其他切换问题相比的错误,但没有找到任何提示。
谢谢你的提示!
单击trigger
时,传播将发生,文档onclick
将被激发。
您正在绑定文档onclick
事件:
$('#' + toggle ).hide(500);
您应该停止点击元素中的传播,以防止文档点击,如下所示:
$( '#' + trigger).click(function(e){
e.stopPropagation();
});
相关文章:
- JS可以在Chrome中工作,但不能在Firefox中工作
- 使RadioButtonList中选定的RadioButton不可单击但不禁用
- fadeIn在悬停时工作,但在单击/单击时不工作
- Fancybox图像点击可以独立工作,但不能与我的其他代码一起工作
- 角度路线在单击时不起作用,但再次单击不起作用
- 表格排序器可单击,但不能排序
- 可以从单击的类中获取id,但不能从单击的id中获取类
- Javascript单选按钮可以在FF和Chrome中使用,但不能在IE中使用
- AJAX GET调用将在第一次调用时工作,但在其他单击之后不工作
- 为什么我可以将表单绑定到$index,但不能插入名称
- 为什么这个脚本只能双击而不能单击
- JQuery Toggle可在第一次单击时工作,但不能再次单击(如预期)
- 上载文件,但不能在表单中上载
- 在Chrome和Firefox中正确完成远程表单,但不能在IE中完成
- ASP.NET MVC表单:可以用ENTER键提交,但不能用submit按钮提交
- 为什么单击事件不能在span上工作,而可以在a上工作?
- 为什么我的网站的单选按钮不能在iPhone/iPad上点击?
- 为什么单击事件不能通过停止鼠标down/鼠标up来停止?
- 单击按钮不起作用,但单击上的传单标记工作正常
- 为什么这个“点击禁用=true;this.form.submit();' 在一个按钮上工作,但不能在另一个按钮上工作