2011-06-07 42 views
1

在我目前的应用程序我使用jQuery用户界面对话框,在很多地方,所以我打算创造这样创建一个jQuery对话框作为API

var MYAPP = MYAPP || {}; 

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

    }()); 

的方法这是我的想法,但现在的问题是我的覆盖是用于不同的目的,如覆盖窗体,视频,确认消息等。有没有一种方法,我可以在我的API的所有选项。所以我只需要调用MYAPP.overlay(“视频”,其他一些参数)和不具有一次又一次....任何意见或建议可以理解的重复代码,将创建覆盖..

+0

为什么没有对集装箱一组ID作为您的API的一部分,这样的API是不可知的东西,它实际上显示?只要它找到id“myContainer”或其他东西。 – 2011-06-07 03:38:55

+0

耶那是一个好主意....这样我可以在我的API..and更多的控制,我应该有,如视频,形式等不同的容器不同的ID ...感谢 – paul 2011-06-07 04:00:28

回答

0

我不知道你想与立即执行的匿名函数来完成什么,但你可以做这样的事情:

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. 
}; 
+0

忽略立即执行的匿名函数...它只是skeleton..yeah我打算做同样的事情,但如果我只是想打电话给MYAPP.overlay(“视频”,以及其他PARAMS);它只会创建与视频(作为对象)的覆盖...。 – paul 2011-06-07 03:49:55

0

是的,你可以使用参数。这里是做的一个非常通用的方式:

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

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

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

会提醒你好

+0

你当然可以这样做的,我只是不知道为什么需要封闭(基于问题)。 – Polaris878 2011-06-07 03:50:10

+0

耶那的基本骨架,以达到什么我打算,但我只是想通过此功能像MYAPP.overlay(“视频”,OBJ)的字符串;它会创建覆盖... – paul 2011-06-07 03:57:38

+0

只需将第二个参数添加到该函数。 '编写代码来创建覆盖层的函数(string,obj)... – Ibu 2011-06-07 04:04:44