0

我有一个打开对话框的按钮,当我关闭对话框时它停止工作。当我在对话框屏幕上保存时,它继续正常工作。

这是打开对话框的按钮:

<button class="actionbutton" type="button" onclick="addLitigant();">Add Litigant To Case(s)</button>

它调用的代码:

function addLitigant(){
    console.log("Calling addLitigant()");
    editDialog.extendedDialog('loadUrl','CRFilingLitigantDialog.do?action=addLitigant', 'Add Litigant');
}

对话框屏幕上的关闭代码:

param['buttons'].push(
        {
            id: "closeButton",
            text: "(C)lose",
            accessKey: "c",
            click: function () {
                jQuery(this).extendedDialog('close');
                jQuery(this).html('');

            }
        }
    );

保存按钮代码:

function () { 
                        console.log("clicking Save");
                        jQuery('#toAssign option').each(function(){
                            jQuery(this).attr('selected',true);
                        });

                        jQuery('#toUnassign option').each(function(){
                            jQuery(this).attr('selected',true);
                        });

                        editDialog.extendedDialog('postUrl', {url: 'CRFilingLitigantDialog.do?action=updateLitigant', formId: '#crFilingLitigantDialogForm', success: function(){
                            litigantTabGet('CRFilingLitigantDetail.do', null);
                            editDialog.extendedDialog ('destroy');
                        }});
                    }

我们正在使用 jquery 1.6.2。我尝试将 console.log 语句添加到 addLitigant() 函数,但是当我从关闭返回时,它不会在控制台中调用任何内容。如果我刷新页面,它确实会再次开始工作,直到我们从对话框中关闭。

这是打开对话框的页面上的即时功能

jQuery(function(){
    console.log("function");

    verificationDialog = jQuery('<div id="verificationDialog"></div>').clerkReviewDialogTemplate({
        height:600,
        width:800,
        title: "Compare Eflex and Icis"
    });

    compareDialog = jQuery('<div id="comparisonDialog"></div>').clerkReviewDialogTemplate({
        height:400,
        width:500,
        title: "Imported Person"
    });

    editDialog = jQuery('<div id="editDialog"></div>').clerkReviewDialogTemplate({
        height:600,
        width:700,
        title: "Edit Litigant",
        buttons: [
            {
                id: "save",
                text: "S(a)ve",
                accessKey: "a",
                click: function () { 
                    console.log("clicking Save");
                    jQuery('#toAssign option').each(function(){
                        jQuery(this).attr('selected',true);
                    });

                    jQuery('#toUnassign option').each(function(){
                        jQuery(this).attr('selected',true);
                    });

                    editDialog.extendedDialog('postUrl', {url: 'CRFilingLitigantDialog.do?action=updateLitigant', formId: '#crFilingLitigantDialogForm', success: function(){
                        litigantTabGet('CRFilingLitigantDetail.do', null);
                        editDialog.extendedDialog ('destroy');
                    }});
                }
            }
        ]
    });

    jQuery('.saveOnChange').bind('change', function(){
        updateLitigants();
    });

    jQuery('.pin').icisAutocomplete({
        mustMatch: true,
        source: function(request, response){
            getQuickAccess(request, response);
        },
        change: function(event, ui){
            updateLitigants();
        }}).each(function(index){
            var data = jQuery(this).data('staging-json');

                jQuery(this).bind('keydown', function(event){
                    return f5_handler({
                        event: event,
                        onf5key: function(){
                            var popup = people_popup({elem: this, event: event, data: data, success: function(data){
                                if(data['pin'] != 'null'){
                                    jQuery(event.currentTarget).val(data['pin']);
                                }
                                if(data['masterPin'] != 'null'){
                                    jQuery('#'+jQuery(event.currentTarget).attr('masterPinField')).val(data['masterPin']);
                                }
                                compareDialog.extendedDialog('close');
                                updateLitigants();
                            }});
                            compareImportedLitigant(data['id'], popup);
                        }
                    });
                });
        });
});

谢谢,

汤姆

4

2 回答 2

0

我将此代码与旧版本进行了比较。我注意到它在旧版本中工作,我比较了两者。旧版本的编辑对话框代码发生了变化,我向它添加了关闭代码,它现在可以工作了。

 editDialog = jQuery('<div id="editDialog"></div>').clerkReviewDialogTemplate({
            height:600,
            width:700,
            title: "Edit Litigant",
            close: function(){
                litigantTabGet('CRFilingLitigantDetail.do', null);
                editDialog.extendedDialog ('destroy').remove();
            },
            buttons: [
                {
                    id: "save",
                    text: "S(a)ve",
                    accessKey: "a",
                    click: function () {
                        jQuery('#toAssign option').each(function(){
                            jQuery(this).attr('selected',true);
                        });

                        jQuery('#toUnassign option').each(function(){
                            jQuery(this).attr('selected',true);
                        });

                        editDialog.extendedDialog('postUrl', {url: 'CRFilingLitigantDialog.do?action=updateLitigant', formId: '#crFilingLitigantDialogForm', success: function(){
                            litigantTabGet('CRFilingLitigantDetail.do', null);
                            editDialog.extendedDialog ('destroy');

                        }});
                    }
                }
            ]
        });
于 2013-08-07T18:18:33.387 回答
0

看起来像是一个回发问题,使您失去绑定事件-这是唯一可能导致丢失按钮事件的事情-尝试将您的即时功能替换为

function pageLoad() {}

看到这个$(document).ready() 和 pageLoad() 是不一样的!

可能有帮助

于 2013-08-06T16:53:38.120 回答