Как повторно вызвать (или поздно запустить) событие `mousedown` в jQuery? - PullRequest
3 голосов
/ 17 декабря 2010

В последнее время у меня возникает один вопрос: в обработчике mousedown я использую .preventDefault для события, чтобы предотвратить выделение текста при перетаскивании:

$(document).bind('mousedown', function(event){
    event.preventDefault();
});

Пока все хорошо.

Затем, все еще удерживая нажатой кнопку мыши, я хотел бы дождаться запуска события longclick (http://github.com/pisi/Longclick) и иметь обработчик longclick, чтобы каким-то образом возобновить исходное событие mousedown иначать выделение текста так, как если бы событие по умолчанию не было предотвращено.

Есть ли способ позднего запуска другого события мыши с исходным кодом?

.trigger способный каким-либо образом принять существующий (сохраненный) объект события? Например, что-то вроде этого?:

var originalEvent;

$(document)
    .bind('mousedown', function(event){
        event.preventDefault();
        originalEvent= event;
    })
    .bind('longclick', function(event){
        $(event.target).trigger(originalEvent)
    })

Мне выпала возможность перетаскивать весь текстовый абзац и все еще предлагать возможность выполнитьвыделение текста внутри абзаца.

Все ответы, предложения и мысли приветствуются!

1 Ответ

1 голос
/ 18 декабря 2010

Передача объекта события в trigger работает в том, что касается jQuery (обработчики событий, связанные с jQuery, будут выполнены и получат объект в качестве параметра), что позволяет вам делать интересные вещи, такие как this , но никаких действий по умолчанию не будет.Большинство браузеров поддерживают спецификацию DOM уровня 2, dispatchEvent , за исключением обычного подозреваемого , который вместо этого имеет fireEvent , что довольно бесполезно, поскольку не вызываетдействие по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...