javascript按钮在关闭后停止工作

javascript button stops working after close

本文关键字:停止工作 按钮 javascript      更新时间:2023-09-26

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

这是打开对话框的按钮:

<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);
                        }
                    });
                });
        });
});

谢谢,

Tom

看起来像是一个使您丢失绑定事件的后台问题-这是唯一可能导致丢失按钮事件的事情-尝试用替换您的即时功能

function pageLoad() {}

请参阅此$(document).ready()和pageLoad()不相同!

可能有助于

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

 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');
                        }});
                    }
                }
            ]
        });