-1

追加用と編集用の2つのダイアログインスタンスを作成する方が良いですか、それとも1つのダイアログを使用することは可能ですか?

これは私が現在使用しているものです

        // Add Dialog 
        $('#addProgramDialog').dialog({
            autoOpen: false,
            width: 400,
            height: 500,
            title: 'Add Program',
            buttons: {
                'Cancel': function () {
                    $(this).dialog('close');
                },
                'Save': function () {
                    saveProgramRequest();
                }
            }
        });


        // Edit Dialog 
        $('#editProgramDialog').dialog({
            autoOpen: false,
            width: 400,
            height: 500,
            title: 'Edit Program',
            buttons: {
                'Cancel': function () {
                    $(this).dialog('close');
                },
                'Update': function () {
                    updateProgramRequest();
                }
            }
        });
4

1 に答える 1

1

DRY Principleに従って、決して繰り返すべきではありません。あなたの例では、幅、高さ、autoOpenパラメーター、およびキャンセルボタンの宣言を複製しています。これを防ぐには、jQueryの各メソッドを使用してダイアログをループし、必要に応じてカスタマイズします。例として:

$('#addProgramDialog, #editProgramDialog').each(function(index, node) {
    var options = {
        //autoOpen: false,
        width: 400,
        height: 500,
        buttons: {
            'Cancel': function() {
                $(this).dialog('close');
            }
        }
    };

    if (node.id == "addProgramDialog") {
        options.title = 'Add Program';
        options.buttons['Save'] = function() {
            saveProgramRequest();
        }
    } else {
        options.title = 'Edit Program';
        options.buttons['Update'] = function() {
            updateProgramRequest();
        }
    }

    $(node).dialog(options);
});

これは、この例をライブで表示するjsFiddleです-http: //jsfiddle.net/YTbnN/

于 2012-05-04T02:49:43.713 に答える