Ir para o conteúdo

Selectedlinks


Criado por Édipo Costa Rebouças, Mar 04 2011 11:49

Não há respostas para este tópico
  • Por favor, faça o login para responder

#1 Édipo Costa Rebouças

Édipo Costa Rebouças
  • Édipo Costa Rebouças
  • Colaborador
  • 4 Revisões

Revisou 04 maro 2011 - 11:49

Considere a url http://www.site.com....agina1/pagina2/

Esse script atribui a classe selected a todos os links e itens de lista LI(que sejam pais desses links) que tenha esta url tanto absoluto quando relativa, e para o subdiretorio tb. exemplo:

$(document).ready(function(){
	'http://www.site.com.br/pagina1/pagina2/'.selectedLinks();
});

vai atribuir a classe selected aos links com url igual a http://www.site.com.br/pagina1/ e http://www.site.com....gina1/pagina2/.

Dependências:

http://jquery.com/

**
 * Marca links como selecionados com base numa String.
 * @author Édipo Costa Rebouças
 * @example 'http://www.site.com.br/pagina1/pagina2/'.selectedLinks();
 * @exception "base url is required"
 * @return String this
 */
String.prototype.selectedLinks = function(){
	var url = this.valueOf();
	var relativeUrl  = null;
	var base = $('base').attr('href');
	var parentUrls = [];
	var insertSlash = '';

	if(base && url.search(base)>-1) relativeUrl = $.trim(url.replace(base,''));
	else throw "base url is required";
	parentUrls = relativeUrl.split('/');
	if(parentUrls[parentUrls.length-1]=='') {
    	parentUrls.pop();
    	insertSlash = '\\/'
	}
	while(parentUrls.length){
    	$('[href='+parentUrls.join('/').replace(/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/gi,'\\$1')+insertSlash+'], [href='+base.replace(/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/gi,'\\$1')+parentUrls.join('/').replace(/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/gi,'\\$1')+insertSlash+']').each(function(){$(this).addClass('selected').parent('li').addClass('selected');});
    	parentUrls.pop();
	}
	return this;
};






1 usuário(s) está(ão) lendo este código

1 membro(s), 0 visitante(s) e 0 membros anônimo(s)