Existe uma maneira de alterar os parâmetros de evento na sua vida???
-
26-09-2019 - |
Pergunta
Eu quero ser capaz de alterar os parâmetros que são passados para o selecionável de início do evento, para que eu possa, basicamente, permitir que o meu usuário, para utilizar os selecionáveis do jQuery UI efeito, sem ter que mantenha pressionada a tecla CTRL.
JS
$(function() {
$( "#selectable" ).bind("mousedown", function(event, ui) {
var result = $( "#select-result" ).empty();
event.metaKey = event.ctrlKey = true;
});
$( "#selectable" ).selectable();
});
Eu tenho um violino com o que eu estou tentando fazer aqui:
http://jsfiddle.net/josephbulger/ZfevM/
O problema que eu estou tendo, é que quando eu definir o evento de parâmetros no método start, stop método não é enxergar as mudanças que eu estou fazendo.
Existe uma forma de realizar o que eu estou tentando fazer?
Solução
Você não pode definir as propriedades aqui não...porque é uma diferentes event
objeto no stop
o método.Você pode definir algumas variáveis em um âmbito mais elevado (como este), mas nenhum que irá persistir no event
objecto.Não é que é "limpar" eles realmente, é apenas uma marca spanking novo objeto.
Para fazer o selecionável comportar-se como se Ctrl é realizada para baixo, ligar para o mousedown
evento ele usa antes do tempo e definir o .metaKey
propriedade em que event
para true
, como este:
$("#selectable").bind("mousedown", function(e) {
e.metaKey = true;
}).selectable();
Você pode testá-lo aqui, lembre-se de encontrar antes de chamar .selectable()
, desde manipuladores de eventos são executados na ordem vinculado.
Outras dicas
Eu atualizei o código. Dê uma olhada neste URL.
http://jsfiddle.net/phoenix_suresh/7f6j5/
Enquanto isso, eu adicionei o atributo de identificação para
Depois de encontrar esta resposta, notei que você pode usar o originalEvent
propriedade no event
objeto retornado no selecionável start
manipulador de eventos para definir o ctrlKey
propriedade para verdadeiro.
Igual a:
$("#selectable").selectable({
start: function (event, ui) {
event.originalEvent.ctrlKey = true;
}
});
Trabalhando violino