나는 전반적인 js bloat를 줄이기 위해 매개 변수를 전달하는 추상화 된 jquery 대화 상자 함수를 만들려고합니다. 내 자바 스크립트는 이와 같은 사례의 현재 가득 : 내 대화 호출을 줄일 수 있다는 희망으로bloating을 줄이기 위해 jquery 대화 호출을 추상화합니다.
function LoadDialog(target, height, confirm_button, function_call) {
$(target).dialog({
resizable: false,
height: height,
modal: true,
buttons: {
confirm_button: function() {
function_call;
$(this).dialog("close");
},
Cancel: function() {
$(this).dialog("close");
}
}
});
}
:
$(".claim_issue_lb").click(function (e) {
$(function() {
$("#dialog-claim").dialog({
resizable: false,
height: 240,
modal: true,
buttons: {
"Claim Issue": function() {
ProcessDealerAction("claim"); //function to be called upon success
$(this).dialog("close");
},
Cancel: function() {
$(this).dialog("close");
}
}
});
});
});
는이 문제를 해결하기 위해, 나는 다음을 생성 다음 예를 참조하십시오.
$(".claim_issue_lb").click(function (e) {
LoadDialog("#dialog-claim", 240, "Claim Issue", ProcessDealerAction("claim"));
});
confi rm 대화 상자가 나타나면 "Yes do it"또는 "Cancel"을 클릭하지 않고 대화 상자가 자동으로 닫힙니다.
이 문제를 해결하는 방법이 확실하지 않거나 전체적인 접근 방식이 처음부터 결함이있는 것으로 판단됩니다.
우리가 좀 더 많은 코드를 볼 수 있습니까? 귀하가 게시 한 내용은 귀하가 가지고있는 문제를 해결하는 데 도움이되지 않습니다. – rlemon
@rlemon. 그것은 그가 함수 리터럴로서'ProcessDealerAction'을 전달하려고 시도하는 대신 호출 결과를 전달합니다. 내 대답을 확인해. –