1

我有一个带有按钮参数的 jquery 对话框。

在我的对话框中,我有一个宽度是隐藏溢出的两倍的 div。按钮是:“取消”或“下一步”。如果他们点击取消,它就会消失。如果他们单击下一步,两倍宽度的 div 会滑过,显示下一个阶段。这很好用,但是我需要更改按钮及其操作,例如说“返回”会滑回,“提交”会提交表单。到目前为止,我有这个:

    the_form.dialog({
    autoOpen: false,
    resizable: false,
    modal: true,
    width: 700,
    height: 500,
    'open': function(){
        $('#new_membership_form_content').load('/ajax', {'index': the_form.attr('data-index'), 'race_index': the_form.attr('data-index')});
    },
    'close': function(){
        $('#new_membership_form_content').html('<img src="/wait.gif"/>');
    },
    buttons: {
        'Cancel': function(){
            the_form.dialog('close');
        },
        'Next': function(){
            $("#join_form_container").animate({
                left: '-672px',
            }, 1500, "easeOutExpo");
        }
    }
});

任何帮助都会很棒!:D 在此先感谢。

编辑:这是我想要实现的伪代码。但是,它不起作用……(忽略函数的内容,它们只是被粘贴了)。

        buttons: {
        if($("#join_form_container").css("left") == "0px"){
            'No, thanks'     : function(){the_form.dialog('close')},
            'Add to basket'  : function(){$("#join_form_container").animate({left: '-672px'}, 1500, "easeOutExpo")},
        }else{
            'Go back'        : function(){$("#jasdainer").animate({left: '-672px'}, 1500, "easeOutExpo")},
            'Submit'         : function(){$("#jasdainer").animate({left: '-672px'}, 1500, "easeOutExpo")}
        }
    }
4

1 回答 1

1

因此,我会有某种标志来表示您何时想要更改按钮功能,或者您可以调用一个函数来处理按钮的重新绑定。

当您的 css 更改时,请调用 rebindCancel() 如下所示

function rebindCancel() {
    $('#cancelButton').unbind('click');
    $('#cancelButton').bind('click', function(event) {
        //Add the code for what you want the Cancel button to rebind to
});

然后,您可以使用另一种相反的方法将其重新绑定回其初始状态。

或者,你可以有一个标志。

var cssChanged = false;
function rebindCancel() {
    $('#cancelButton').bind('click', function(event) {
        if (cssChanged == false) {
             //Bind the initial code here
        } else {
            //Bind the alternate code here when the css left == 0px
        }
});
于 2012-07-03T14:22:37.610 回答