Есть ли способ изменить параметры события в jQuery?
-
26-09-2019 - |
Вопрос
Я хочу иметь возможность изменить параметры, которые передаются в начальное событие выбора, поэтому я могу в основном позволить моему пользователю использовать эффект UI выбираемого jQuery без необходимости удерживать ключ Ctrl.
Js.
$(function() {
$( "#selectable" ).bind("mousedown", function(event, ui) {
var result = $( "#select-result" ).empty();
event.metaKey = event.ctrlKey = true;
});
$( "#selectable" ).selectable();
});
У меня есть скрипка с тем, что я пытаюсь сделать здесь:
http://jsfiddle.net/josephbulger/zfevm/
Проблема, которую я имею, это то, что когда я устанавливаю параметры события в методе начала, способ остановки не виден изменения, которые я делаю.
Есть ли способ достичь того, что я пытаюсь сделать?
Решение
Вы не можете установить свойства здесь нет ... потому что это разные event
объект в stop
метод. Вы можете установить некоторые переменные в более высоком объеме (так), но никто не сохранится на event
объект. Дело не в том, что это «очищение» их действительно, это просто бренд, проповедя новый объект.
Чтобы сделать выбор? Ctrl. удерживается, связывается с mousedown
мероприятие, которое он использует заранее и установить .metaKey
недвижимость на этом event
к true
, так:
$("#selectable").bind("mousedown", function(e) {
e.metaKey = true;
}).selectable();
Вы можете проверить это здесь, не забудьте найти до призыв .selectable()
, Поскольку обработчики событий выполняются в привязке заказа.
Другие советы
Я обновил код. Посмотрите на этот URL.
http://jsfiddle.net/phoenix_suresh/7f6j5/
Тем временем я добавил атрибут ID для
После нахождения этого ответа я заметил, что вы можете использовать originalEvent
недвижимость на event
Объект, возвращенный в выборе start
Обработчик событий для установки ctrlKey
Имущество правда.
Вот так:
$("#selectable").selectable({
start: function (event, ui) {
event.originalEvent.ctrlKey = true;
}
});
Работающий скрип