Pergunta

Eu tenho um código como este na minha página:

<div class="item item_wall id1"></div>
<div class="item item_wall id2"></div>
<div class="item item_wall id3"></div>
<div class="item item_wall id4"></div>
<div class="item item_wall id5"></div>

Eu quero algo em jQuery para que quando um div com a classe de "item" é clicado, ele vai carregar outra div de uma página, o nome do arquivo de página dependerá da div clicado. De preferência, eu gostaria que ele para carregar:

something.php? Type = item_wall & id = id1

Para referência futura é isso que eu acabei com:

<div id="itemstable" class="item_love">
    <div class="id1"></div>
    <div class="id2"></div>
    <div class="id3"></div>
    <div class="id4"></div>
    <div class="id5"></div>
    <div class="id6"></div>
</div>

jQuery:

<script>
$("#itemstable div").click(function(){
    var url = "something.php?type=" + $(this).parent().attr("class") + "id=" + $(this).attr("class");
    alert(url);
}); 
</script>
Foi útil?

Solução

A resposta de Ecoando Spencer Ruport, você pode fazer isso mais fácil ao usar jQuery para uso atributos personalizados que não seja de classe.

Por exemplo, seu DIV pode ser parecido com isto:

<div class="item" type="item_wall" id="1"></div>

Você pode facilmente criar jQuery seletor e eventos como o seguinte:

$(".item").click(function() {
    var url = "something.php?type=" + $(this).attr("type");
    windows.location = url;
});

É claro, não se esqueça de verificar a validade, nunca mais a entrada do usuário de confiança (o HTML pode ser reescreveu por um usuário mal-intencionado).

Outras dicas

Para XHTML documento válido, o mais fácil é adicionar invisível DIV criança sob seu DIV principal. Ex .:

<div class="item">
  <div class="variable type">item_wall</div>
  <div class="variable id">1</div>
</div>

Você pode encontrar o "atributo personalizado" usando .find (). Por exemplo:.

$(".item").click(function() {
    var type = $(this).find(".type").val();
    var url = "something.php?type=" + type;
    windows.location = url;
});

Um pouco de opinião:. Misturando dados com interface do usuário deve ser evitado

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top