Pregunta

Quiero ser capaz de cambiar los parámetros que se están pasando en la década de los seleccionables comenzar evento, así que básicamente puedo permitir que mi usuario utilizar el efecto seleccionable jQuery UI sin tener que mantener pulsada la tecla CTRL.

JS

$(function() {
$( "#selectable" ).bind("mousedown", function(event, ui) {
    var result = $( "#select-result" ).empty();
    event.metaKey = event.ctrlKey = true;
});
$( "#selectable" ).selectable();
});

Tengo un violín con lo que estoy tratando de lograr aquí:

http://jsfiddle.net/josephbulger/ZfevM/

El problema que estoy teniendo es que cuando me puse los parámetros del evento en el método de arranque, el método de parada no está viendo los cambios que estoy haciendo.

¿Hay una manera de lograr lo que estoy tratando de hacer?

¿Fue útil?

Solución

No se pueden establecer las propiedades aquí no ... porque es un diferente event objeto en el método stop. Puede configurar algunas variables en un ámbito superior ( como esto ), pero ninguno que persistirán en el objeto event. No es que se trata de "limpieza" que en realidad, es sólo un completamente nuevo objeto.


Para hacer que se comportan como si seleccionable Ctrl se mantiene pulsado, se unen al evento mousedown se utiliza antes de tiempo y establecer la propiedad .metaKey en ese event para true, como este:

$("#selectable").bind("mousedown", function(e) {
    e.metaKey = true;
}).selectable();

Puede probarlo aquí , recuerde que debe encontrar antes llamando .selectable(), ya que los controladores de eventos se ejecutan en el orden determinado.

Otros consejos

He actualizado el código. Echar un vistazo a esta dirección URL.

http://jsfiddle.net/phoenix_suresh/7f6j5/

atributo ID Mientras tanto, he añadido a

  • elementos, para que pueda tener más control sobre el mismo.

        
  • Después de encontrar esta respuesta me di cuenta de que se puede utilizar la propiedad originalEvent en el objeto event devuelto en el controlador de eventos start seleccionable para establecer la propiedad ctrlKey true.

    Al igual que:

    $("#selectable").selectable({
        start: function (event, ui) {
            event.originalEvent.ctrlKey = true;
        }
    });
    

    violín

    Licenciado bajo: CC-BY-SA con atribución
    No afiliado a StackOverflow
    scroll top