2012-04-24 13 views
11

Cuando hago clic en la opción Seleccionar, manejo el evento Modificado.simulando el mouse, haga clic en la opción de seleccionar con jquery

Quiero simular esto en el código, y hacer que MIRAR LO MISMO que cuando el usuario hace clic en la opción.

Hasta el momento, al establecer el atributo 'seleccionado' en la opción no se resalta lo mismo que cuando se hace clic en él.

Puedo activar "cambiar" en la opción y presionar mi controlador, pero la opción en la lista no está seleccionada como si hubiera hecho clic.

Sugerencias?

ACTUALIZACIÓN: El código de selección de consulta funciona bien, gracias por las respuestas. El problema era mío (por supuesto). Tenía el código de selección fuera del bloque Jquery.Ajax Success: así que creo que estaba funcionando, pero el código de respuesta ajax lo estaba manchando.

+1

¿Has probado .focus() después de seleccionar la opción? – nnnnnn

+0

no no intentado el foco todavía. Debo mencionar que este es un cuadro de lista, no el combo, así que con el atributo múltiple. – R3lm

Respuesta

0
$("option").attr("selected","selected"); 

seleccionará la opción que desee.y después de eso puede desencadenar el evento.

y no se olvide de limpiar atributo seleccionado las otras opciones usando:

$("option").attr("selected",null); 

o

$("option").removeAttr("selected"); 
+0

Al menos en IE, con múltiples = atributo múltiple, la configuración seleccionada no parece resaltar la opción como cuando se hace clic. – R3lm

+0

Debería funcionar. Aquí hay un ejemplo: http://stackoverflow.com/q/2179529/1262700 –

5
​$('option[value="4"]').attr('selected', 'selected').parent().focus();​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ 

funciona para mí. Consulte http://jsfiddle.net/TZVyh/1/

+0

¡Lo intentaré y actualizaré gracias! – R3lm

+0

Es curioso. Después de ejecutar esto, el elemento tiene un recuadro gris muy claro alrededor: está seleccionado, pero no resaltado, como cuando hace clic con el mouse (azul). El cuadro de lista tiene foco, y cuando hago una flecha arriba/abajo, la opción arriba o abajo del elemento seleccionado se selecciona y resalta en azul, ¡con el estilo que quiero! – R3lm

+0

¿Qué navegador estás usando? –

0

... pero la opción de la lista no está seleccionada como si se hubiera hecho clic.

que no entienden completamente lo que estamos tratando de hacer, pero funciona de forma similar a $('select').change()$('select option').click(). En el evento change, $(this).val() es el valor de la opción seleccionada, así como en el evento click.

En cualquier caso, puede seleccionar una opción con $('select[value="yourvalue"]').prop('selected', true);

+0

Debo elaborar. Cuando hago clic en la opción, suceden dos cosas: el elemento de opción se resalta en azul (claramente algún tipo de cambio de estilo). Segundo, el evento de cambio se dispara.Establecer el atributo 'seleccionado' en una opción en el código no aplica el mismo estilo visual que cuando se hace clic. – R3lm

+0

'selects' son engañosos, no puedes diseñarlos y dependen del sistema operativo. – elclanrs

5

estaba trabajando con los ColumnFilterWidgets jQuery tabla de datos de plugins y que tenía que hacer lo siguiente para ejecutar la acción de filtrado (basado en las respuestas de elclanrs y Ben Foster):

$("option").attr('selected', 'selected').parent().focus(); 
$("option").parent().change(); 
+0

Esta debería ser la respuesta aceptada, ya que es la única que "simula" el mismo comportamiento exacto que la interacción del usuario. –

Cuestiones relacionadas