我有这个html元素:
<div class="s_right hide_text"><a class="crackable" href="#">next</a></div>
我需要在这个元素上禁用click动作一段时间,我这样做:
$.fn.disableFor = function (time) {
var el = this, qname = 'disqueue';
el.queue(qname, function () {
el.attr('disabled', 'disabled');
setTimeout( function () {
el.dequeue(qname);
}, time);
})
.queue(qname, function () {
el.removeAttr('disabled');
})
.dequeue(qname);
};
var settings_rc_right = $('.s_right a');
settings_rc_right.on('click', function(){
$(this).disableFor(2000);
// actions
});
我不知道为什么但这仍然有效,我可以逐个快速点击并点击通话操作。任何人都可以帮我吗? Fiddle for this
答案 0 :(得分:5)
仅禁用<input>
,<textarea>
,<select>
和其他表单小部件支持。对于其他元素,您可以添加禁用的css类。
<a>
需要以不同的方式处理。您可以指定一个不执行任何操作的单击处理程序:
$("a").click(function(){ return false; });
此外,您应该使用.prop()
而不是.attr()
。请参阅.prop() vs .attr()。
答案 1 :(得分:1)
需要像这样申请a
:
$("a").on("click," function(){ return !1; });
// or
$("a").on("mousedown" function(){ return !1; });