Действительно ли возможно создать пространство имен в jQuery?

Вы можете использовать CoRoutines . См. Реализацию Caliburn.Micro . У меня есть пользовательская реализация здесь .

52
задан 9 February 2009 в 04:01
поделиться

3 ответа

lpfavreau предлагает решение , расширяются объект jQuery с Вашими собственными методами (так, чтобы их функциональность применялась на фактический контекст объекта jQuery).

, Если Вы обращаетесь просто к пространству имен Ваш код, можно использовать долларовый символ как это:

$.myNamespace = { .. };

или "jQuery":

jQuery.myNamespace = { .. };

Быть осторожными с пространством имен Вы выбираете, поскольку это может перезаписать существующие методы jQuery (я предложил бы сначала искать в коде jQuery так, чтобы Вы не делали).

можно перейти по этой ссылке: http://www.zachleat.com/web/2007/08/28/namespacing-outside-of-the-yahoo-namespace/

Видит, как легкий это должно создать Вашу собственную функцию для тиражирования то, что делает YUI:

// include jQuery first.
jQuery.namespace = function() {
    var a=arguments, o=null, i, j, d;
    for (i=0; i<a.length; i=i+1) {
        d=a[i].split(".");
        o=window;
        for (j=0; j<d.length; j=j+1) {
            o[d[j]]=o[d[j]] || {};
            o=o[d[j]];
        }
    }
    return o;
};

// definition
jQuery.namespace( 'jQuery.debug' );
jQuery.debug.test1 = function()
{
    alert( 'test1 function' );
};
jQuery.debug.test2 = function()
{
    alert( 'test2 function' );
};
// usage
jQuery.debug.test1();
jQuery.debug.test2();
39
ответ дан Community 7 November 2019 в 19:31
поделиться

В зависимости от того, что Вы пытаетесь сделать, сменная архитектура jQuery может быть тем, что Вы ищете:

$.fn.myPlugin = function() {
  return $(this).each(function() {
    // do stuff
  });
};

или...

$.fn.myPlugin = function() {
  var myNamespace = {
    // your stuff
  };
};

действительно это зависит от того, что Вы пытаетесь сделать.

http://docs.jquery.com/Plugins/Authoring

2
ответ дан rmurphey 7 November 2019 в 19:31
поделиться

jQuery имеет набор плагинов, которые расширяют базовую функциональность. Существует этот плагин для легких пространств имен.

5
ответ дан lpfavreau 7 November 2019 в 19:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: