que tienen este código:niños jQuery un clic href no funciona
<html>
<head>
<title>site</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#wlink a').click(function() {
$('.box:visible').fadeOut('fast', function() {
$('#' + (this.id).replace('link', '')).fadeIn('fast');
});
$('#wlink a').removeClass('selected');
$(this).addClass('selected');
});
$('#wlink div').click(function() {
var child = $(this).children();
child.click();
});
$('#linkbox1').addClass('selected');
$('#box1').fadeIn('fast');
});
</script>
</head>
<style>
a { outline: none; cursor: pointer; }
#wrapper { border:1px solid #cccccc; border:solid 1px #ddd; width:806px; height:255px; overflow: hidden; }
#wrapperBox { width:6000px; }
span.text { font-size:100px; color:#aaa; }
div.box { float:left; width:805px; height:255px; background:#efefef; display: none; }
#wlink div { width: 200px; text-align:center; display: block; float:left; border: solid 1px #ddd; }
a.selected { background: #eee; }
</style>
<body>
<div id="wrapper">
<div id="wrapperBox">
<div id="box1" class="box">
<span class="text">Box 1</span>
</div>
<div id="box2" class="box">
<span class="text">Box 2</span>
</div>
<div id="box3" class="box">
<span class="text">Box 3</span>
</div>
<div id="box4" class="box">
<span class="text">Box 4</span>
</div>
</div>
</div>
<div id="wlink">
<div><a id="linkbox1">Box 1</a></div>
<div><a id="linkbox2">Box 2</a></div>
<div><a id="linkbox3">Box 3</a></div>
<div><a id="linkbox4">Box 4</a></div>
</div>
</body>
</html>
Ahora lo que quiero hacer es cuando se hace clic en el DIV matriz de la A HREF, quiero simular un HREF clic. Pero no funciona, y me sale este error:
too much recursion
[Break On This Error])});return}if(e.nodeType===3||e.nodeTy...nt=="undefined"&&(b=b.ownerDocument||
¿Qué hay de malo en mi código?
Gracias, J
. Supuse que quería detener la propagación y prevenir Por defecto, la forma más eficiente de hacerlo es solo devolver falso. Además, personalmente he experimentado problemas de compatibilidad del navegador con esas dos funciones, pero nunca con el uso de return false. No estoy de acuerdo en que usar return false sea una mala práctica, alguien que decida decir que sus mejores prácticas en su blog no me cortan la mostaza. Si necesitaba la acción predeterminada pero no el borboteo, entonces la respuesta correcta habría sido usar e.stopPropagation. Prefiero mi respuesta más elegante. – sillyMunky
Señalar estas cosas en el enlace y proporcionar una alternativa es una buena decisión, tal vez el OP no las haya encontrado antes. Pero creo que afirmar que hay una "mejor práctica" para esto, que es el camino más largo, no es tan útil. – sillyMunky
Supone que quería eso sin decirlo explícitamente, lo que creo que es un perjuicio.Los principiantes necesitan comprender * qué * está haciendo su código y * por qué * deben escribirlo de una manera u otra. Si el OP quería 'devolver false' mientras entendía sus implicaciones, está bien. Lo que es un flaco servicio es decir "solo devuelve falso para evitar la propagación" cuando eso no es todo lo que devuelve falso lo hace y podría tener otros impactos negativos. Estoy diciendo: "Este es el código que hace lo que usted pidió, y esto es lo que realmente devuelve falso. Use con prudencia". Realmente, no es tan importante. –