jquery-ui - 如何在扩展功能中将参数传递给jquery UI对话框按钮功能?

标签 jquery-ui jquery jquery-plugins

我想用jquery UI对话框创建弹出窗口,参数recordtype将决定要加载的对话框的内容以及按下对话框按钮时要调用的函数。

function showPopup(div_id, w, h, title, recordtype, recordid) {

    $(div_id).dialog({
        height: h,
        width: w,
        title: title,
        modal: true,
        autoOpen: true

    });

    //----extend the ui feature-----
    $.extend($.ui.dialog.prototype, {
        'addbutton': function(buttonName, func) {
            var buttons = this.element.dialog('option', 'buttons');
            buttons[buttonName] = func;
            this.element.dialog('option', 'buttons', buttons);
        }
    });

    //----load content page------
    if (recordtype == 'research') {
        $(div_id).load('ResearchContents.aspx?ID=' + recordid);
        $(div_id).dialog('addbutton', 'Save', onclick);
        $(div_id).dialog('addbutton', 'Delete', onclick);
    }
    else if (recordtype == 'course') {
        $(div_id).load('CourseContents.aspx?ID=' + recordid);
        $(div_id).dialog('addbutton', 'Create', onclick);
        $(div_id).dialog('addbutton', 'Delete', onclick);
    }

}

//-----How to pass parameters to onClick? ----------
function onclick(recordtype, recordid) {
   if(recordtype=='research' && recordid==-1)
       createResearch();
   else if(recordtype=='research' && recordid>-1)
       updateResearch();
   else if(recordtype=='course' && recordid==-1)
       createCourse();
   else if(recordtype=='course' && recordid>-1)
       updateCourse();

}

我的问题是,如何将参数recordtype和recordid传递给onClick函数?

最佳答案

如果您只是将引用作为回调传递给函数,那么您唯一的参数就是执行事件处理程序时传递的唯一 jquery,它是一个 Event 对象。

将对“onClick”的调用包装到匿名函数中,以便您可以调用传递所需参数的方法:

$(div_id)
    .dialog('addbutton', 'Save', function() {
        onclick(recordtype, recordid);
    });

关于jquery-ui - 如何在扩展功能中将参数传递给jquery UI对话框按钮功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9291141/

相关文章:

javascript - Accordion 切换开关打开/关闭

从外部变量设置对象属性值的javascript语法

javascript - 使用 jQuery 方法作为回调参数

javascript - 如何将数据添加到 SlickGrid DataView?

jquery - 如何按 jQgrid 中列的正则表达式值进行分组?

jquery - 获取 jQuery UI Selectable 的数据属性

javascript - 带有两个溢出 :auto; object disappears 的 div 的 jquery sortable()

javascript - 响应地垂直居中div

JQuery UI 菜单 - 第一个 li 有额外的高度

javascript - 如何管理从多个按钮打开 "same jquery ui dialog"