我可以't阻止JQuery上的按钮单击事件
I can't prevent a button click event on JQuery
我有一个清除列表的按钮,单击该按钮会显示一个要求验证的对话框(是/否)。我想要的是在清除列表后禁用"清除"按钮(单击"是")。这是我的代码:
$('#clearBtn').click(function() {
$('#alert5').show();
$('#bg').show();
$('#Yes').click(function(){
$('.list1').empty();
$('#clearBtn').disable(true);
$('#clearBtn').click(function(e){
e.preventDefault();
});
$(".alert").fadeOut(250);
$(".alertbg").fadeOut(250);
});
});
preventDefault()函数似乎不起作用。
第一个从不嵌套事件处理程序
$('#cleatBtn').click(function () {
$('#alert5').show();
$('#bg').show();
});
$('#Yes').click(function () {
$('.list1').empty();
$('#cleatBtn').attr('disabled', true);
$(".alert").fadeOut(250);
$(".alertbg").fadeOut(250);
});
如果您只想禁用,请使用以下语法
$('#cleatBtn').attr('disabled', true);
完全删除最里面的事件。。这不是必须的。
如果希望启用按钮但使用off
关闭事件处理程序,请使用on
绑定事件
还有一个选项是,当您按下yes时,将类应用于按钮,并且仅当该类不存在时才执行代码。
$('#cleatBtn').click(function () {
if( !$(this).hasClass('active')) {
$('#alert5').show();
$('#bg').show();
}
});
$('#Yes').click(function () {
$('.list1').empty();
$('#cleatBtn').attr('disabled', true);
$('#cleatBtn').addClass('active');
$(".alert").fadeOut(250);
$(".alertbg").fadeOut(250);
});
true
的prop
函数:
$('#cleatBtn').prop("disabled", true);
e.preventDefault();是取消活动的正确方式。一些较旧的浏览器也期望返回类型为false。我认为这将导致jQuery调用preventDefault()?
这里有一个很好的答案:What';s添加';return false';点击事件监听器?
我觉得你的结构看起来有点奇怪。您不需要在单击事件中附加单击事件。
只需将它们单独附在文档上即可。准备活动。在它们嵌套的那一刻,然后返回尝试取消您的活动。dom树可能会被事件的嵌套方式弄糊涂。
希望能有所帮助。
相关文章:
- 如何隐藏按钮单击事件上的占位符
- 从Web服务器下载图像按钮单击使用JavaScript
- 在SweetAlert中传递ASP.NET按钮单击事件
- 单选按钮单击可刷新/更改网站的小区域
- 调用按钮单击事件 ajax 加载的用户控件
- 附加 jQuery 代码以在加载和按钮单击时运行
- 在按钮单击时将图像URL数据显示到弹出框中,而无需禁用背景
- 按钮单击服务器单击
- 触发单选按钮单击,并在页面刷新时记住选择
- 如何使用 javascript 而不是使用控制器中的方法在 rails 中呈现部分按钮单击
- jQuery UI 选项卡 - 将参数设置为下一个/上一个按钮单击
- 如何在 Angular JS 中的按钮单击上添加类
- 当元素上有多个类时触发按钮单击事件
- 如何在 HTML 中的按钮单击上更改图像(IMG URL 每次来自服务器)
- 如何使用javascript刷新我的html页面时清除按钮单击
- 阻止后退按钮 - 单击按钮时忽略
- 如何制作按钮.单击“开始时不运行”
- Rails:尝试在按钮单击时渲染部分
- 在页面加载时调用函数,在按钮单击时再次调用函数,但参数不同
- 如何在服务器端的文本中添加按钮单击事件