将元素设置为不可点击,然后设置为可点击

我希望将div元素设置为不可单击,然后在单击另一个元素后将其设置为可单击。

所以,当点击.case时:

$('.case').click(function() { $('#patient').addClass('active').on('click'); }); 

但是当我进一步向下时,如何在第一个实例中将#patient设置为unlickable:

 $('#patient').click(function() { alert('clicked'); }); 

 $('#patient').on('click', function() { if ( $(this).hasClass('active') ) { // do whatever when it's active. } return false; }); 

如果你只是想让它不接受,你可以将它添加到你的css( 指针事件 ):

 #patient { pointer-events: none; } #patient.active { pointer-events: auto; } 
 $('#patient').unbind("click"); 

我希望这会奏效。

不可点击:

 $("#ElementName").css("pointer-events","none"); 

可点击:

 $("#ElementName").css("pointer-events","auto"); 

根据您的需要(只有一个或多个元素,无论是否创建动态元素),您可以使用:

1)一个变量,用于检查是否已完成对另一个元素的第一次单击

 var isActive = false; $('.case').click(function() { isActive = true; }); $('#patient').click(function(){ if(isActive === false) return false; //Your behaviour }); 

2)在第一个元素的click事件中定义click函数

 $('.case').on('click',function() { //Make element clickable $('#patient').on('click',function(){ //Your behaviour }); }); 

然后,您可以使用off来删除click事件

 for first instance..add deactive class to patient div tag... $('#patient').click(function() { if($(this).hasClass('deactive')) return; else //do what you want to do. }); on case click... $('.case').click(function() { $('#patient').removeClass('deactive'); }); 

使用触发器

 $('#patient').addClass('active').trigger('click'); 

参考: .trigger()