2013-07-30 6 views
0

jQuery/Javascript가 처음이므로 가능한 경우 확실하지 않습니다. 내가 요소를 제거하는 간단한 기능을 가지고 클래스를 추가하고 입력 버튼을 비활성화합니다. 나는 기본적으로 (이 기능을 반대로해야합니다에 즉 뒤에있는 모든 요소를 ​​추가, 제거매개 변수를 기반으로하는 다른 함수 동작

function removeElements() { 
    $("#dragAndDropFiles, placeHolderImage").remove(); 
    $(".dragDropTag, .dragDrop, .dragDropIcon, #multiUpload").addClass("dropped"); 
    $("#multiUpload").prop('disabled', true); 
} 

나중에 . 클래스는, 입력 버튼을 가능하게 나는 또 다른 기능을 추가하여이 작업을 수행 할 수 있습니다 :

function addElements() { 
    $("#dragAndDropFiles, placeHolderImage").append('<div>markup here</div>'); 
    $(".dragDropTag, .dragDrop, .dragDropIcon, #multiUpload").removeClass("dropped"); 
    $("#multiUpload").prop('disabled', false); 
} 

내 질문이 어떻게 든 최적화 될 수있다를, 그래서 예를 들어 내가 포장 수있는 두 가지 기능을 쓸 필요가 없습니다? 클래스를 추가/제거하거나 입력 필드를 활성화/비활성화하기 위해 동일한 라인을 다시 작성하는 대신에 (예 : 들, 전달받을 매개 변수를 기반으로 다른 일을 수행하는 코드 한 줄을 가지고)

답변

0

Basicaly, 당신이 그런 일을 할 수 :

function setElements(remove) { 
    var dropIds = $("#dragAndDropFiles, placeHolderImage"); 
    var dropClasses = $(".dragDropTag, .dragDrop, .dragDropIcon, #multiUpload"); 

    if (remove) { 
    dropIds.remove(); 
    dropClasses.addClass("dropped"); 
    } else { 
    dropIds.append('<div>markup here</div>'); 
    dropClasses.removeClass("dropped"); 
    } 

    $("#multiUpload").prop('disabled', remove); 
} 
관련 문제