我使用的是图像而不是按钮,现在我想在某些情况下禁用onclick()事件,因为我们禁用了按钮。我尝试了很多方法,但没有用。以下是我的所作所为。
<img title="Ok" class="mtbtn"id="upd_1" onclick="add_edited('1','MM');" src="/project/images/green_ok.gif" border="0">
jquery代码是:
$("#upd_1").css('opacity','0.5');
$("#upd_1").unbind("click");
也尝试了
$("#upd_1").css('pointer-events','none');
和document.getElementById('upd_1').style.pointerEvents = 'none';
。
任何解决方案?
答案 0 :(得分:0)
试试这个:
$("#upd_1").on('click',function(e){
e.preventDefault();
});
答案 1 :(得分:0)
一个提示是,您可以为您的点击事件添加后缀,这样您就可以确定它是您影响的唯一事件。绑定:
$('#elementId').on('click.myevent', function () {
// your code
}
取消绑定:
$('#elementId').off('click.myevent');
答案 2 :(得分:0)
不进行绑定或取消绑定click事件,但如何为图像创建遮罩。当您希望图像可以点击时隐藏蒙版,否则显示它。
img onclick="alert('clicked')" src="http://lh3.googleusercontent.com/mjejVTJKT4ABNKq2HGlkDs36f-QvzI2hKFER098vBIgiAoZ2H-SN5QPvFaZEVDZRxfujrS6pszZ_J-_di2F57w0IFE3KAciDwGAh-9RcCA=s660" alt="" />
<div id="mask"></div>
<script>
$('#mask').hide();
$('#disable').click(function() {
$('#mask').show();
});
$('#enable').click(function() {
$('#mask').hide();
});
</script>
尝试使用Plnkr:Plnkr
答案 3 :(得分:0)
试试这种方式。将参数添加到两个属性中(例如data-a和data-b)。
<img title="Ok" class="mtbtn"id="upd_1" data-a="1" data-b="MM" src="/project/images/green_ok.gif" border="0">
然后以这种方式更改您的JavaScript:
$(document).ready(function(){
$("#upd_1").bind("click", function(){
var a = $(this).data("a");
var b = $(this).data("b");
// Code here
$(this).unbind("click");
});
});
Here结果。
替代方案是:
var semaphore = true;
function add_edited (a, b) {
if (semaphore) {
semaphore = false;
// Code here
}
}
创建一个信号量来管理点击代码的执行。
答案 4 :(得分:0)
我了解您的问题,无需unbind()
并重新bind()
onclick事件,您只需使用removeAttr()
和{{删除并重新添加onclick属性即可1}}
attr()
JQuery:
<img title="Ok" class="mtbtn"id="upd_1" onclick="add_edited('1','MM');" src="/project/images/green_ok.gif" border="0">
重新添加onclick事件执行以下操作:
$("#upd_1").css('opacity','0.5');
$("#upd_1").removeAttr('onclick');
这就是你需要做的一切。