0
여기에 내가 사용하려고하는 js 코드가 있습니다. 나는 같은 코드가 반복되는 것을 싫어하고 더 나은 방법으로 이것을하도록 자신을 도울 수 없다.코드 반복을 피하기 위해 변수를 선언하는 더 좋은 방법은 무엇입니까?
$(function(){
$('[data-behavior~=quick-reject]').on("click", function(){
var form = $(this).closest("[data-behavior~=modal-footer]").find("form");
var some_action = form.find("#some_actions").val();
var some_reasons = form.find("[data-behavior~=escalation-reason-select-box]");
if((some_reasons.val() === "") && (some_action === "reject")){
var errorReason = "Please select a reason";
form.addClass("error").
parent().
find("div.error").
html(errorReason);
}else{
form.submit();
}
});
$(document).on("change", "#some_actions", function(){
var form = $(this).closest("[data-behavior~=modal-footer]").find("form");
var some_action = form.find("#some_actions").val();
var some_reasons = form.find("[data-behavior~=escalation-reason-select-box]");
if(some_action === "verify"){
some_reasons.hide();
}else{
some_reasons.show();
}
});
});
코드가 동일하지 않습니다. vs change some_actions를 클릭하면 코드가 달라집니다. change 이벤트는 동일한 코드를 사용하는 것을 정말로 좋아하지 않는다면 form/form.find 대신 "this"를 사용할 수 있습니다. 그러나 실제 * actions *는 반복되지 않으며, 동작 할 요소 만 가져옵니다. –