2011-03-01 18 views
6

Quiero adjuntar un evento a las etiquetas de opción en un cuadro de lista para que cuando haga clic en una de ellas, se mueva a otro cuadro de lista.Evento de doble clic en la opción de cuadro de lista no activada en IE

tengo este código:

$('#' + opts.leftListId + ' > option').live('dblclick', function() { 
    // Move the object 
}); 

funciona bien en Firefox, pero en IE el evento no se dispara en absoluto. No puedo hacer doble clic en el nodo de selección, porque necesito mover solo el que se hizo clic. Alguna idea?

Respuesta

6

Tal vez puedas probar:

$('#' + opts.leftListId).find('option').each(function(){ 
    $(this).live('dblclick', function() { 
    // Move the object 
    }); 
}); 

Actualización (10:21 GMT)

Trate de sacar la vivo:

$('#' + opts.leftListId).find('option').each(function(){ 
    $(this).dblclick(function() { 
    // Move the object 
    }); 
}); 

ver este ejemplo - http://jsfiddle.net/hr7Gd/

Actualización (10:45 GMT)

Su otra opción es ejecutar el dblclick() en la selección (! Que trabaja) y el valle de obtener la opción de wich ha sido seleccionada y el trabajo con que:

$("select").dblclick(function() { 
    var str = ""; 
    $("select option:selected").each(function() { 
    str += $(this).text() + " "; 
    }); 
    $("span").text(str); 
}) 
.trigger('change'); 

ver este ejemplo de trabajo aquí - http://jsfiddle.net/hr7Gd/1/

+0

No, aún no tuve suerte. Encuentra las opciones y las itera a través de ellas, pero no ocurre nada cuando haces doble clic. ¡Gracias! –

+0

@ Devbook.co.uk - ver mi actualización, intente sacar '.live()' – Alex

+0

Todavía no funciona ... – Alex

3

¡Gracias - estaba pensando mal que no podía utilizar el evento de doble clic de la selección.

Este es el código de trabajo:

$('#' + opts.leftListId).dblclick(function() { 
     // Move selected options: $('#' + opts.leftListId + ' :selected') 
}); 

La razón por la que no pensé que esto iba a funcionar es que pensé que iba a pasar sobre todos los elementos seleccionados en lugar de sólo el hecho clic en. Sin embargo, parece que el primer clic de un doble clic selecciona solo el elemento, antes de que este evento se active con doble clic y lo mueva.

+0

co.uk, Parece que tuvimos el momento de Eureka juntos. Si miras mi respuesta, verás cómo obtener el valor de la opción también. – Alex

+0

Ahora eso es lo que llamo TEAM WORK :) – Alex

7

Doubleclick no se activará, es decir, si intenta agregarlos a elementos de opción, sin importar cómo lo agregue. Lo único que tengo trabajando en IE es agregar el reloj de eventos a la selección y luego mirar los elementos seleccionados:

$("select").dblclick(function() { 
    $("select option:selected").each(function() { 
    alert(this); 
    }); 
});  
+2

Esta debería ser la respuesta aceptada. – user3281466

Cuestiones relacionadas