2014-01-22 2 views
0

바이올린 제거 - http://jsbin.com/oloriTo/1/editJQuery와 : 동적 요소 (기능 분리)

요소를 제거하면 문제가되지 않습니다,하지만 난 (클래스 .rf있다) 나는 더 이상 요소를 제거 할 제거 거짓 버튼을 클릭하면, true (클래스는 .rt) 버튼을 클릭하지 않는 한.

현재 true 요소 제거를 클릭하면 예상대로 작동합니다. (데모 조금 맛있지 만 그것을 통해 지점을 가져옵니다) 내가 false 버튼을 클릭하면 .container div 내의 요소를 클릭하고 제거 할 수 있습니다.

도움을 주시면 대단히 감사하겠습니다.

$(document).ready(function() { 
    var enabled = false; 
    $('.rt').click(function() { 
    enabled = true; 

    if (enabled === true) { 
     $('.container *').on('mousedown touchstart', function() { 
     $(this).remove(); 
     return false; 
     }); 
    } else { 
     enabled = false; 
    } 
    }); 

    $('.rf').click(function() { 
    enabled = false; 
    }); 
}); 
+0

조건은 무의미하며 위의 행에서 조건을 true로 설정하면 항상 'enabled'가 true가됩니다. – adeneo

+0

기본적으로 enabled의 var은 false로 설정됩니다. button remove true를 클릭하면 enabled가 true로 설정되고 false false 버튼을 클릭하면 false로 설정됩니다. –

+1

당신이 무엇을 설정하든 상관 없습니다. 조건 바로 전의 라인에서 항상 true로 리셋됩니다. 그렇다면'if (true === true)'와 같은 것입니다. 항상 사실입니다. 이벤트 핸들러. – adeneo

답변

3

설정 코드에서 제거 코드를 바인딩하고 있습니다. 이를 분해하고 .rf.rt으로 설정된 변수를 살펴 보겠습니다.

$(document).ready(function() { 
    var enabled = false; 
    $('.rt').click(function() { 
    enabled = true; 
    }); 

    $('.rf').click(function() { 
    enabled = false; 
    }); 
    $('.container').on('mousedown touchstart', '*',function() { 
     if (enabled)  
     $(this).remove(); 
     return false; 
    }); 
});