2012-11-22 2 views
0

J'ai ce code:Apprenez à l'enfant de ses parents, jquery

<div class="Slideshow homeSlideshow"> 
    <div class="jshowoff jshowoff-1" style="position: relative;"> 
    <ul style="position: relative;"> 
     <li class="Slide" title="Trailer" style="left: auto; right: 0px; top: auto; bottom: auto; position: relative;"> 
      <a target="_blank" href="http://www.youtube.com/watch?v=123456" title="xxx"></a> 
     </li> 
    </ul> 
    <p class="jshowoff-slidelinks jshowoff-1-slidelinks"> 
     <a class="jshowoff-slidelink-0 jshowoff-1-slidelink-0" title="undefined" href="#null" style="width: 30.3333%;"> 
      Trailer 
     </a> 
    </p> 
    </div> 
</div> 

Et je suis en classe p jshowoff-slidelinks. Ce dont j'ai besoin, c'est qu'en cliquant sur l'intérieur de ce p, je vais à l'href qui est à l'intérieur de la diapositive de la classe li.

Une idée? C'est comme, allez à l'href à l'enfant du parent, quelque chose de ce genre. Cela est, cela fait partie d'un code de diaporama, et donc le li continue à changer au fur et à mesure que la glissière se déplace.

+1

c'est une bonne idée de montrer votre code, dans ce cas, il serait le javascript/code Jquery que vous essayez de faire le travail! – Naryl

Répondre

1

Essayez ceci,

Live Demo

$('.jshowoff-slidelinks.jshowoff-1-slidelinks').click(function(){ 

    alert($(this).closest('.jshowoff.jshowoff-1').find('li a').attr('href')); 

});​ 
1
$("p a").click(function() { 
    var div = $(this).parent().parent(), 
    a = div.find("ul a"), 
    href = a.attr("href"); 

    window.location = href; 
}); 
1
$('[class^=jshowoff-slidelink]').click(function(e){ 
    e.preventDefault(); 
    window.location = $(this).closest('.Slideshow').find('.Slide a').prop('href'); 
}); 

appelant .parent() ne fait pas usage de querySelectorAll qui a des répercussions sur la performance. .closest(), cependant, sera, et a la meilleure performance. J'ai utilisé class^ ou class begins with si vous avez plusieurs instances de ce lien. window.location indiquera au navigateur de charger la chaîne fournie après le = qui, dans ce cas, est l'élément d'ancrage dans l'élément .slide. Nous avons simplement pris la propriété href de cette ancre.

1

Je serais probablement aller avec closest et find:

$("p.jshowoff-slidelinks").click(function() { 
    var href = $(this).closest("div.Slideshow").find("li.Slide a").attr("href"); 
    if (href) { 
     window.location = href; 
    } 
    return false; 
}); 
1

Bind l'événement pour un clic et en cas obtenir l'élément et vérifier pour les parents et trouver la balise d'ancrage qui est souhaitée

var p = $("p.jshowoff-slidelinks"); 
p.click(function(){ 
window.location = $(this).parent().find("ul>li>a").attr("href"); 
});   

Vérifiez le dessous jsFiddle

http://jsfiddle.net/LSwvG/3/

Utilisez Window.loaction pour rediriger

Merci

Questions connexes