2014-01-31 4 views
0

클릭 이벤트를 비활성화하고 해당 항목을 클릭하면 div를 비활성화하려고합니다. 이 기능을 수행 할 수 없습니다. 어떤 도움이 필요합니까? 대신이의 What I have triedJquery div를 비활성화하고 클릭을 비활성화하십시오.

<div class="ordrClone"> 
         Image 1 
        </div> 
<div class="ordrClone"> 
         Image 2 
        </div> 
<div class="ordrClone"> 
         Image 3 
        </div> 

<div> 
    <input type="button" id= "btnCancel" value="Enable"> 
</div> 

$('.ordrClone').click(function() { 
     $('.ordrClone').not(this).each(function() { 
      $(this).off('click'); 
     }); 
    }); 

$('#btnCancel').click(function() { 
    $('.ordrClone').each(function() { 
      $(this).on('click'); 
     }); 
}); 

답변

2

사용 $(this) :

$('.ordrClone').not($(this)).each(function() { 

또한 콜백 함수를 생성 및 방법에에 그 콜백을 사용

$ (이) CSTE 연구진 ('클릭 '); // 할 일이 잘못되었습니다.

$(this).on('click',callback); 

자세히

에 대한 on method를 참조하지만 당신은 당신이 방법 대신에 one method을 사용할 수 있습니다 번만의 기능을 사용하려면. 당신이 경우 Fiddle

1

하나 쉬운 솔루션은

$(document).on('click', '.ordrClone:not(.disabled)', function() { 
    console.log('clicked') 
    $('.ordrClone').not(this).addClass('disabled'); 
}); 

$('#btnCancel').click(function() { 
    $('.ordrClone').removeClass('disabled'); 
}); 

데모입니다 클릭합니다 번만

$(document).one('.ordrClone','click',function() { 
     $('.ordrClone').not(this).each(function() { 
      $(this).off('click'); 
     }); 
    }); 
1

사용 one() 대신 같은 on(),

$('.ordrClone').one('click',function() { 
     // your code worked once 
}); 

Live Demo

1

당신은 One를 사용할 수 있습니다

1

$ ("# btnCancel")을 클릭 (함수() {$ (이) .unbind() '를 클릭합니다.'; }

이렇게하면 방금 클릭 한 항목의 '클릭'기능이 해제됩니다. 여러 가지 방법으로 요소를 비활성화 할 수 있습니다. 정말 많이 사용되는 방법은 .hide() 메소드를 사용하여 코드를 작성하고 필요할 때 사용하는 것입니다.하지만 위의 코드는 양식 요소에서 특정 이벤트를 사용 불가능하게하는 데 잘 작동합니다.

관련 문제