Javascript 创建jquery对话框作为API

Javascript 创建jquery对话框作为API,javascript,jquery,user-interface,dialog,Javascript,Jquery,User Interface,Dialog,在我当前的应用程序中,我在很多地方使用jQueryUI对话框,所以我计划创建一个类似 var MYAPP = MYAPP || {}; MYAPP.overlay = (function(){ $("#id").dialog(); }()); 这是我的想法,但现在的问题是我的覆盖是用于不同的目的,如覆盖形式,视频,确认消息等。有没有一种方法,我可以在我的API内的所有选项。因此,我只需调用MYAPP.overlay(“视频”,一些其他参数),它将创建覆盖,而无需

在我当前的应用程序中,我在很多地方使用jQueryUI对话框,所以我计划创建一个类似

 var MYAPP = MYAPP || {};

   MYAPP.overlay = (function(){
       $("#id").dialog();

   }());

这是我的想法,但现在的问题是我的覆盖是用于不同的目的,如覆盖形式,视频,确认消息等。有没有一种方法,我可以在我的API内的所有选项。因此,我只需调用MYAPP.overlay(“视频”,一些其他参数),它将创建覆盖,而无需反复重复代码……任何想法或建议都将受到欢迎。

我不确定您试图通过立即执行匿名函数来实现什么,但您可以这样做:

MYAPP.overlay = function MYAPP$overlay(id, paramsObj) {
    // do something based on element type, id, or params obj here.
    $(id).dialog();

    // possibly return something if needed.
};

是的,您可以使用参数。以下是一种非常通用的方法:

MYAPP.overlay = (function(){
        // complex code ....

        return function(arg) {
          alert(arg);
        }
     })();

// example
MYAPP.overlay('hello');

将向hello发出警报

为什么不将容器的设置id作为API的一部分,以便API与它实际显示的内容无关?只是让它查找id“myContainer”或什么的。是的,这是个好主意……这样我可以在API中有更多的控制权……我应该为不同的容器(如视频)使用不同的id,表单等…感谢signore立即执行匿名函数…这只是一个骨架…是的,我计划做同样的事情,但如果我只想调用MYAPP.overlay(“视频”,和其他参数);它只会创建覆盖视频(作为一个对象)。你当然可以这样做,我只是不知道为什么需要闭包(基于这个问题)。是的,这是实现我计划的基本框架,但我只想将该功能作为一个字符串传递,比如MYAPP.overlay(“视频”,obj);它将创建覆盖…只需在函数中添加第二个参数<代码>函数(字符串,obj)编写代码以创建覆盖。。。