Javascript 创建jquery对话框作为API
在我当前的应用程序中,我在很多地方使用jQueryUI对话框,所以我计划创建一个类似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(“视频”,一些其他参数),它将创建覆盖,而无需
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)编写代码以创建覆盖。。。