Project Outline
$(selector, context)
extend(target, source)
id(id)
each(a, fn)
trim(s)
serialize(data)
get(url, data, callback)
getJSON(url, data, callback)
getXML(url, data, callback)
post(url, data, callback)
loadJSONP(url, jsonp, callback)
select(selector, context)
add(selector, context)
find(selector)
filter(selector)
not(selector)
next(selector)
prev(selector)
end()
each(fn)
copy(a)
attr(key, val)
val(values)
html(val)
append(val)
prepend(val)
text(val)
hasClass(name)
addClass(name)
css(name, val)
on(type, fn)
un(type, fn)
load(url, data, callback)
attr(e, key, val)
val(e, values)
hasClass(e, name)
addClass(e, name)
removeClass(e, name)
toggleClass(e, name)
css(e, name, val)
add(e, type, fn)
remove(e, type, fn)
_quickId(e, mode, context, val)
_byId(e, val)
_byTag(e, val)
_byClass(e, val)
_byAttr(e, attr, op, val)
_byPseudo(e, name, val)
_getNodes(e, mode, name)
_diff(e, e2)
compile(selector, type)
select(selector, context)
is(e, selector)
filter(e, selector, nonMatches)
«
Framework jProton

Namespace jProton

Namespace central do framework. jProton é um namespace executável, de modo que ele é tanto um agregador de métodos/atributos quanto uma função. Como namespace, ele é o agregador de todas funcionalidades do framework. Como função, ele é um atalho para o principal recurso do framework: a seleção de elementos do documento. Além disso, o namespace $ é um atalho para jProton, de modo que os dois códigos abaixo:

// Usa o namespace jProton para instanciar a classe jProton.Set
jProton(selector, context)
// Usa o atalho $ para instanciar a classe jProton.Set
$(selector, context)

equivalem a:

// Instancia uma nova classe jProton.Set explicitamente 
new jProton.Set().select(selector, context)

A maioria dos recursos do framework encontram-se dentro de outros namespaces dentro de jProton, como jProton.Set, ou jProton.ajax. Mas, alguns recursos especiais encontram-se no próprio namespace jProton, como os métodos jProton.trim() e jProton.each(), acessíveis também como $.trim() e $.each().

Defined in: jproton.js.

Field Summary
set Atalho para incluir funcionalidades na classe jProton.Set.
Method Summary
namespace(ns) Cria um namespace, e retorna o último objeto desse namespace.
extend(target, source) Extende as propriedades de um ou mais objetos-fonte para outro objeto-alvo.
id(id) Atalho para a função document.getElementById().
each(a, fn) Executa uma função para cada elemento de um array.
trim(s) Remove os espaços laterais de uma string.
emptyFn() Função vazia usada para remover funções adicionadas a elementos.
serialize(data) Serializa.
get(url, data, callback) Realiza uma requisição ajax do tipo get, retornando texto.
getJSON(url, data, callback) Realiza uma requisição ajax do tipo get, retornando JSON.
getXML(url, data, callback) Realiza uma requisição ajax do tipo get, retornando XML.
post(url, data, callback) Realiza uma requisição ajax do tipo post.
loadScript(url) Carrega um script dinamicamente.
loadJSONP(url, jsonp, callback) Carrega JSON remotamente (JSONP).
Field Detail
jProton.set

Atalho para incluir funcionalidades na classe jProton.Set.

Method Detail
jProton.namespace(ns)

Cria um namespace, e retorna o último objeto desse namespace.

Exemplo:

// Cria o namespace 'my.name.space' caso não exista, e retorna o último 
// objeto do namespace, no caso o objeto 'space'.
$.namespace('my.name.space');
Parameters:
{Object} ns

Namespace a ser criado.

jProton.extend(target, source) : Object

Extende as propriedades de um ou mais objetos-fonte para outro objeto-alvo. Se apenas um objeto for passado como parâmetro, ele será considerado o objeto-fonte, e o objeto referenciado por this será considerado o alvo, que nesse caso será o namespace jProton. Se mais de um objeto for passado como parâmetro, o primeiro objeto será considerado o alvo, e os objetos restantes serão considerados as fontes.

Ao final, será retornado o objeto-alvo extendido.

Sintaxe:

jProton.extend( source || ( target, source1 [ , source2, ... ] ) );

Existem três propriedades que possuem significado especial quando definidas no objeto fonte. Elas são: @init, @extension e @require. Essas propriedades não serão extendidas para o objeto alvo, servindo apenas para definir respectivamente a inicialização, registro e dependência da extensão.

NOTA: A maneira de declarar as extensões e suas dependências será diferente na versão 0.4.x, e por consequência, as propriedades @extension e @require entrarão em desuso.

Inicialização de Extensões

Algumas extensões necessitam que um determinado código seja executado assim que a extensão for criada. Para isso, deve-se informar no objeto fonte a ser inicializado a propriedade especial @init, com a devida função de inicialização como seu valor.

Registro de Extensões

Além disso, o método jProton.extend() pode ser usado também para registrar extensões automaticamente. Para isso, deve-se informar uma propriedade especial no objeto fonte com nome @extension. O valor dessa propriedade é um objeto que especifica o nome e versão da extensão, no seguinte formato:

  '@extension': {'name': 'version'}

O registro é feito definindo uma propriedade com nome name e valor version no namespace extensions do objeto alvo. Repare que se um namespace for informado como alvo, a extensão será registrada no último objeto do namespace, como exemplificado abaixo:

  target.namespace.extensions.name = 'version';

Dependência de Extensões

Se a extensão que está sendo criada usa recursos de uma outra extensão, deve-se usar a propriedade especial @require para a dependência com outra extensão, evitando assim que a extensão seja carregada caso a extensão requirida não esteja instalada.

Se a extensão requerida não estiver instalada, será gerado um erro indicando que a extensão deve ser instalada. Se a extensão requerida estiver instalada, mas for de uma versão inferior a versão requerida, será gerado um erro indicando a versão instalada é inferior a versão requerida.

O exemplo a seguir ilustra o uso das três propriedades especiais para se criar uma extensão de jProton. Será criada a extensão myExt versão 0.1 no namespace jProton.myPlugin apenas se a extensão myOtherExt versão 0.2 já estiver instalada em jProton.myPlugin. Se a extensão requerida estiver instalada, será criado o namespace jProton.myPlugin, e adicionado a ele a propriedade newProperty e o método newMethod. Além disso, como esta sendo informado a propriedade @extension, será criada uma nova propriedade jProton.myPlugin.extensions.myExt com o valor 0.1. Ao final, será retornado o objeto alvo raiz, no caso, o objeto jProton.

Exemplo 2:

// Cria o namespace onde do plugin
$.namespace('jProton.myPlugin');

// Cria uma nova extensão no namespace 'jProton.myPlugin'. Será criada
// uma nova propriedade 'jProton.myPlugin.extensions.myExt' com o valor
// '0.1' indicando o registro e versão da extensão.
$.extend(jProton.myPlugin, {

  // declara a dependência com outra extensão
  '@require': {'myOtherExt': '0.2'},
  
  // registra a extensão  
  '@extension': {'myExt': '0.1'},
  
  // Função de inicialização
  '@init': function() {
    // O código de inicialização segue aqui
    ...
  },
   
  // nova propriedade a ser extendida
  newProperty: 'value',
   
  // novo método a ser extendido
  newMethod: function() {
    return this.newProperty;
  }
  
});
Parameters:
{Object} target?, Default:

Objeto alvo para onde as propriedades serão copiadas.

{Object} source

Objeto fonte de onde as propriedades serão copiadas.

Returns:
{Object}

Retorna o objeto target extendido.

See:
jProton.namespace
jProton.id(id) : Element

Atalho para a função document.getElementById().

Parameters:
{String} id
Returns:
{Element}
jProton.each(a, fn)

Executa uma função para cada elemento de um array.

// Exibe os elementos de um array
$.each(array, function(i,e) {
  alert('O elemento de número ' + i + ' é igual a ' + e);
});
Parameters:
{Array} a

Array a ser percorrido.

{Function} fn

Função a ser chamada para cada elemento.

jProton.trim(s) : String

Remove os espaços laterais de uma string.

Parameters:
{String} s

String a ser alterada.

Returns:
{String}
jProton.emptyFn()

Função vazia usada para remover funções adicionadas a elementos.

serialize(data)

Serializa.

Parameters:
{Object} data

Desc

get(url, data, callback)

Realiza uma requisição ajax do tipo get, retornando texto.

Parameters:
{String} url

URL a ser requisitada.

{Data} data

Dados a serem enviados.

{Function} callback

Função de retorno.

getJSON(url, data, callback)

Realiza uma requisição ajax do tipo get, retornando JSON.

Parameters:
{String} url

URL a ser requisitada.

{Data} data

Dados a serem enviados.

{Function} callback

Função de retorno.

getXML(url, data, callback)

Realiza uma requisição ajax do tipo get, retornando XML.

Parameters:
{String} url

URL a ser requisitada.

{Data} data

Dados a serem enviados.

{Function} callback

Função de retorno.

post(url, data, callback)

Realiza uma requisição ajax do tipo post.

Parameters:
{String} url

URL a ser requisitada.

{Data} data

Dados a serem enviados.

{Function} callback

Função de retorno.

loadScript(url)

Carrega um script dinamicamente.

Parameters:
{String} url

URL do script.

loadJSONP(url, jsonp, callback)

Carrega JSON remotamente (JSONP).

Parameters:
{String} url

URL dos dados.

{String} jsonp

Nome da função de retorno do servidor. O padrão é callback.

{Function} callback

Função de retorno.

Documentation generated by JsDoc Toolkit 2.0.preview_4 on Wed Mar 26 2008 01:56:03 GMT-0300 (BRT)