Em jQuery, Metadados e XHTML Compliance

votos
5

Eu quero adicionar alguma funcionalidade jQuery para nossos sites onde um pedaço de marcação terá um manipulador de clique que terá de fazer com que a ação aconteça em outro pedaço de marcação, ou seja, A é um gatilho para a ação de B. Não há nenhuma garantia sobre a relação estrutura de a e B, então não posso contar com um seletor jQuery, além de cada única um terá que relacionam-se apenas com o seu homólogo única B.

Qual é o consenso geral sobre a melhor maneira de proceder em tais circunstâncias?

Opção 1: Quem se importa com o cumprimento XHTML, é superestimado de qualquer maneira. Temos produtores de conteúdo web sem treinamento capaz de injetar marcação em nosso site de qualquer maneira para o estrito cumprimento XHTML seria um sonho. Apenas certifique-se os atributos de marca e ler seus valores com jQuery.

Example:
<div class=jquery-feature-trigger actson=targetID>Trigger</div>

Opção 2: Use atributos que se parecem com HTML, mas realmente não deve ser usado para essa finalidade.

Example:
<div class=jquery-feature-trigger rel=targetID>Trigger</div>

Opção 3: Usar namespaces como ASP.NET 4.0 é de sair para fazer.

Example:
<div class=jquery-feature-trigger custom:actson=targetID>Trigger</div>

Se você quer recomendar Opção 3, eu gostaria de receber um link para o que é necessário para chegar a este trabalho como eu realmente não tenho idéia se um DTD tem que ser feita ou como vinculá-lo em.

Opção 4: A comunidade de estouro de pilha tem uma idéia melhor ... ???

Publicado 19/05/2009 em 16:55
fonte usuário
Em outras línguas...                            


6 respostas

votos
8

Você poderia investigar o plugin jQuery Metadados , que pode armazenar JSON metadados no classatributo (ou vários outros lugares). Exemplo:

<div class="jquery-feature-trigger { actson: 'targetID' }">Trigger</div>
Respondeu 19/05/2009 em 17:27
fonte usuário

votos
6

Gostaria de usar data-atributos para este agora, apesar de conformidade XHTML, como este:

<div class="jquery-feature-trigger" data-actson="targetID">Trigger</div>

Estes são um recurso HTML5, mas não causam quaisquer problemas em HTML4 / XHTML outro do que não ser atributos válidos no validador ... mas sem problemas reais resultar desta.

jQuery também adicionou suporte incorporado para estes desde jQuery 1.4.3 nos .data()métodos.

Respondeu 26/10/2010 em 02:34
fonte usuário

votos
1

Tente isto:

<html>
<head>


  <script src="scripts/jquery/jquery-1.2.6.min.js" type="text/javascript"></script>
  <!--Using highlight effect to illustrate-->      
  <script src="scripts/jquery/jquery-ui-highlight.min.js" type="text/javascript"></script>
  <script type="text/javascript">
    $(document).ready(function(){
      $(".jquery-feature-trigger").click(function(){
           $("#target-" + $(this).attr("id")).effect("highlight", {}, 6000);

      });
});
</script>

</head>

<body>

 <div class="jquery-feature-trigger" id="1">Trigger 1</div>
 <div class="jquery-feature-trigger" id="2">Trigger 2</div>
 <div class="jquery-feature-trigger" id="3">Trigger 3</div>
 <div class="jquery-feature-target" id="target-1">Target 1</div>
 <div class="jquery-feature-target" id="target-2">Target 2</div>
 <div class="jquery-feature-target" id="target-3">Target 3</div>   

</body>
</html>

Então eu decidi dar o alvo divs o id "target-x" e dar o gatilho divs o ID de "x". Desta forma, quando você clica no gatilho x afeta alvo "target-x".

Observe a linha que vai

$("#target-" + $(this).attr("id"))

sua nesse ponto que você obtenha o ID da div clicado e concatenar-lo para "TARGET" e que se torna o id do div alvo.

Respondeu 19/05/2009 em 17:23
fonte usuário

votos
1

Existe alguma maneira que você pode armazenar a informação dentro do método de dados jQuery? Salva atravancando a marcação

Para um exemplo veja aqui

snipplr.com/view/9715/the-jquery-data-store/

ou a documentação direta

docs.jquery.com/Core/data#name

Eu usei-o um par de vezes para armazenar informações sobre os meus elementos, função muito útil que não parece ser saber sobre amplamente!

Desculpe não pode postar links eu sou um novo usuário :(

Respondeu 19/05/2009 em 17:21
fonte usuário

votos
0

Eu não sei exatamente o que você está fazendo, mas seria possível fazer o gatilho ser uma marca de âncora e, em seguida, dar o alvo um id? Como isso:

<a href="#target1">Trigger 1</a>
<div id="target1">Target 1</div>

Em seguida, você poderia usar jQuery para encontrar o ID do alvo, olhando para o atributo href.

Se gatilho 1 oculta ou mostra alvo 1 ou rola para baixo a ele, este método teria a vantagem de ainda fazer algo se o JavaScript foi desativado.

Respondeu 19/05/2009 em 17:41
fonte usuário

votos
0

E o que dizer colocando dentro de sua div entradas escondidas com nomes e ids apropriadas? Desta forma, você manter XHTML clara. Então você vai usar assim:

$( "div_name").find( "hidden_input_name").val()
Respondeu 19/05/2009 em 17:25
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more