避免触发多个点击事件
Avoid triggering multiple click events
本文关键字:事件 更新时间:2023-09-26
当我单击其同级链接时,我正在尝试禁用/启用输入字段。
这是我的代码。
$('a').on('click',function(){
var inp=$(this).siblings('input');
inp.prop('disabled', false);
$(this).click(function(){
inp.prop('disabled', true);
});
});
当我第一次单击它时,它可以正常工作,但从下次开始它将不起作用。因为这两个单击功能,触发器。我无法克服这个问题。请帮助我。
看到小提琴。
只需在每次点击时否定disabled
道具即可。 elem.disabled = ! elem.disabled
.
演示小提琴:http://jsfiddle.net/abhitalks/2a2ajbnb/1/
片段:
$('a').on('click',function(){
var $inp = $(this).siblings('input');
$inp.prop('disabled', !$inp.prop('disabled'));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" name="x" value="22" disabled/><a href="#">change</a>
试试这个:
$('a').on('click',function(){
var inp=$(this).siblings('input');
inp.prop('disabled', !inp.prop('disabled'));
});
您可以尝试使一键式功能同时完成这两项工作,这可能更容易。否则,只需使用
$('a').off('click');
$('a').on('click', function() {
if ($('#ib').attr('disabled') == 'disabled') {
$('#ib').prop('disabled', false);
} else {
$('#ib').prop('disabled', true);
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<input id='ib' type="text" name="x" value="22" disabled/>
<a href="#">change</a>
演示
相关文章:
- 分派点击事件并保留击键修饰符
- 模糊事件的Javascript测试
- keyup事件处理程序更改焦点不适用于快速键入
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 如何使Javascript动态html表及其上的事件
- 使用类从一个标记中双击事件
- 如何在未直接触发的情况下停止事件
- 如何在elfinder插件(一个文件管理器插件)上获得上传前事件
- 对iPad上的点击事件反应缓慢
- 事件和状态
- Fancybox是否将Click事件静音
- 主干-不管怎样,检查事件以前是否绑定过
- 从控制器返回后Ajax启动事件激发
- 如何从画布上的某个移动事件中获取X和Y
- Jquery:未触发select事件
- JsFiddle上的鼠标事件不起作用
- 只覆盖箭头键滚动事件
- $window.ga在AngularJS事件中未定义
- cron作业与Javascript计时事件
- ng更改事件不适用于Dropdown