2011-05-11 19 views
42

Después de que la función ajax haya terminado. en los mensajes de éxito me estoy enfocando en el div específico. Pero no está funcionando. Mi código está aquí.jquery: focus to div no funciona

$j.ajax({ 
    url:"<?php echo admin_url('admin-ajax.php'); ?>", 
    type:"POST", 
    data:"action=press_release&page="+0+"&do_task="+do_task+"&id="+id+"&module="+module, 
    success:function(data){ 
     $j("#com_cont").show(); 
     $j("#com_cont").html(data); 
     $j("#loading_heart").hide(); 
     $j("#focus_point").focus(); 
    } 
}); 

Este es el código no está funcionando (no se centra en el div: $j("#focus_point").focus();

+0

¿cuál es exactamente el contenido de este div? – user489872

+0

la mejor respuesta es en esta página http://stackoverflow.com/questions/10503606/scroll-to-bottom-of-div-on-page-load-jquery – pmbanugo

Respuesta

67

puede utilizar el código siguiente para traer el foco a un div, en este ejemplo la página se desplaza a la <div id="navigation">

$('html, body').animate({ scrollTop: $('#navigation').offset().top }, 'slow'); 
+3

Esta es una mala respuesta, la siguiente es más correcta y mucho más limpio. – Himmators

+0

En la mayoría de los casos es la respuesta perfecta, +1 para la genialidad –

+0

la mejor respuesta está en esta página http://stackoverflow.com/questions/10503606/scroll-to-bottom-of-div-on-page-load-jquery – pmbanugo

19

enfoque no funciona en divs por defecto, pero, de acuerdo con esto, se puede hacer que funcione:.

El evento de foco se envía a un elemento cuando gana el foco. Este evento es implícitamente aplicable a un conjunto limitado de elementos, tales como elementos de formulario (<input>, <select>, etc.) y enlaces (<a href>). En versiones recientes del navegador , el evento puede ampliarse a e incluir todos los tipos de elementos por estableciendo explícitamente la propiedad del elemento tabindex. Un elemento puede obtener el foco mediante comandos de teclado, como la tecla Tab, o haciendo clic con el mouse en el elemento .

http://api.jquery.com/focus/

94

un <div> se puede enfocar si tiene un tabindex atributo. (el valor se puede ajustar a -1)

Por ejemplo:

$("#focus_point").attr("tabindex",-1).focus(); 

Además, considere instalar outline: none !important; por lo que aparece sin un rectángulo de selección.

var element = $("#focus_point"); 
element.css('outline', 'none !important') 
     .attr("tabindex", -1) 
     .focus(); 
+0

Esto es lo que he visto también, pero no puedo hacer que funcione para Ie8 o Ie7 –

+0

Parece que no puedo hacer que esto funcione para Ie8 o Ie7 o también he visto que necesita agregar setTimeout para que le da al evento un tiempo extra –

+0

Esto es realmente útil para mí en términos de accesibilidad. – Sashwat