<script type="text/javascript">
$(function(){
$("button").on("click", function(e){
var clickId= $(e.target).prop("id");
console.log(clickId);
if("btn1" == clickId){
console.log("close");
$(document).bind("contextmenu" , function(e){
return false;
})
}else{
console.log("open");
$(document).bind("contextmenu" , function(e){
return true;
})
}
})
})
</script>
这是我写的js代码,现在的问题是禁用右键菜单可以做到,但是我想重新启用就不好用了,请问有什么办法吗?
//-------------------------------------------------
想到unbind()函数,这个确实可以实现功能:
if("btn1" == clickId){
$(document).bind("contextmenu" , function(e){
console.log("close");
return false;
})
}else{
$(document).unbind("contextmenu");
}
不知道还有什么别的方法吗?
迷茫2017-04-10 17:04:35
动态绑定可以使用对象访问的方法来调用,如:
$selecter[ isOn ? 'on' : 'off' ]();
$selecter.on();
$selecter.off();
看你的需求,其实解绑无意义,解绑事件通常是用在特殊的逻辑上,
<script type="text/javascript">
$("button").on("click", function (e) {
var isBtn = 'sb-stop' === $(e.target).prop('id');
$(document).off('.btnCMEvent').on('contextmenu.btnCMEvent', isBtn ? function (e) {
e.preventDefault();
console.log('右键已禁用');
return false;
} : function () {
$(this).off('.btnCMEvent');
});
});
</script>