如何将这两个语句合并为一个语句。他们像镜子一样工作。
我试图使代码看起来更好和更简单。
任何帮助都非常感谢。

           $('#q_login_dialog #menu-register').click(function() {

                    $('#q_login_dialog #menu-login').removeClass('q_dialog_panel_item_active');
                    $('#q_login_dialog #menu-register').addClass('q_dialog_panel_item_active');
                    $('#q_dialog_login input[type!=hidden]').val('');
                    $('#q_dialog_reset input[type!=hidden]').val('');
                    $('#q_dialog_login').hide();
                    $('#q_dialog_reset').hide();
                    $('#q_dialog_register').show();
                    $('#q_dialog_register input[name=email]').focus();
                    $('#q_dialog_login input').blur();
                    $('#q_dialog_login span').html('');
                    what = 'register';
                });

            $('#q_login_dialog #menu-login').click(function() {

                    $('#q_login_dialog #menu-register').removeClass('q_dialog_panel_item_active');
                    $('#q_login_dialog #menu-login').addClass('q_dialog_panel_item_active');
                    $('#q_dialog_register input[type!=hidden]').val('');
                    $('#q_dialog_reset input[type!=hidden]').val('');
                    $('#q_dialog_register').hide();
                    $('#q_dialog_reset').hide();
                    $('#q_dialog_login').show();
                    $('#q_dialog_login input[name=email]').focus();
                    $('#q_dialog_register input').blur();
                    $('#q_dialog_register span').html('');
                    what = 'login';
                });

最佳答案

两者之间的唯一区别似乎是使用register vs. login,这应该很容易进行参数设置:

function makeClickHandler(type, subtype) {
    return function() {
        $('#q_login_dialog #menu-' + subtype)
                .removeClass('q_dialog_panel_item_active');
        $(this).addClass('q_dialog_panel_item_active');
        $('#q_dialog_' + subtype + ' input[type!=hidden]').val('');
        $('#q_dialog_reset input[type!=hidden]').val('');
        $('#q_dialog_' + subtype).hide();
        $('#q_dialog_reset').hide();
        $('#q_dialog_' + type).show();
        $('#q_dialog_' + type + ' input[name=email]').focus();
        $('#q_dialog_' + subtype + 'input').blur();
        $('#q_dialog_' + subtype + 'span').html('');
        what = type;
    }
}

$('#q_login_dialog #menu-register').click(makeClickHandler("register", "login"));
$('#q_login_dialog #menu-login').click(makeClickHandler("login", "register"));


我的眼睛可能会错过另一个差异,但是我想就是这样(如果没有,您应该看到一般的想法)。

关于javascript - 如何将这两个语句合并为一个语句?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8673945/

10-12 13:00