tengo que obligar a la función de clic en cada div de esta lista ordenada con el fin de hacer que ocultar/novato mostrar una imagen en cada div imgXX, estoy con jQueryBinding función de clic en cada div jQuery
<ol id='selectable'>
<li class="ui-state-default">
<div id="img01" class="img">
<div id="star01" class="star">
<img src="../ima/star.png" height="30px"/>
</div>
</div>
</li>
<li class="ui-state-default">
<div id="img02" class="img">
<div id="star02" class="star">
<img src="../ima/star.png" height="30px"/>
</div>
</div>
</li>
</ol>
jQuery
$('div').each(function(){
$(this).click(function(){
if($(this).find('img').is(':visible').length){
$(this).find('img').fadeOut(700);
}
else{
$(this).find('img').fadeIn(700);
}
});
});
¿Qué le está causando dolor? Umm ... ($ (esto) .find ('img'). Es (': visible'). La longitud no es correcta, creo. Is() te da un verdadero falso. Aplicarle longitud puede ser extraño. –
@Sidhart Tiene razón, debería ser 'find ('img: visible')' – alex
Tenga en cuenta que está vinculando el evento click en los elementos div anidados, por lo que podrían disparar dos veces. Puede usar '$ (' div.img ') 'o' $ (' div.star ') 'para seleccionar un conjunto de elementos div. Además,' .each (function() {$ (this) .click (...);}) 'puede acortarse a simplemente' .click (...) 'mientras aplica el evento a todos los elementos de la colección. – Guffa