2016-03-13 2 views
0

Как я могу уменьшить количество событий, связанных с запуском мыши? Я все еще хочу использовать мышь, но с меньшим количеством триггеров событий.Уменьшить количество событий, вызванных наведением мыши

$(clientFrameWindow.document.body).on("mouseover",function() { 
//it should be 15 times slow down than now. 
console.log(1); 


}); 

Я использую JQuery. любая помощь будет оценена по достоинству.

+1

Не назначайте его телу, каждый раз, когда ваша мышь перемещается из одного элемента в другой, он собирается запустить событие mouseover и пузырь до тела. Направьте только те элементы (элементы), на которые вы хотите включить курсор мыши. –

+0

Я нацелил его на тело, потому что мне нужно захватить другие элементы, так как я разрабатываю приложение для перетаскивания. Вот почему мне это нужно. , пожалуйста, снова просмотрите вопрос. –

+0

The ondragover (https: // developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/ondragover) и другие [события перетаскивания] (https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API) могут работайте намного лучше, чего вы пытаетесь достичь. – Roberto

ответ

1

Поскольку вы должны использовать слушателя на body, в соответствии с вашим комментарием, я бы предложил вам рассмотреть что-то вроде дросселирования или debouncing.

Прочитайте это для получения дополнительной информации: https://css-tricks.com/the-difference-between-throttling-and-debouncing/

Вот простая реализация дросселирования: https://jsfiddle.net/jonathansampson/m7G64/

Я также предлагаю вам удалить накладные расходы на JQuery на этом и просто сделать addEventListener('mouseover', function(){})

EDIT: Кроме того, поскольку вы хотите его перетащить на body, я полагаю, ваша среда ОС, возможно, могла бы использовать событие mouseenter вместо mouseover? Это определенно дешевле.

+0

оценил .. да, но мне также нужен способ уменьшить скорость запуска события. –

+0

«уменьшить скорость запуска события». Ну, дросселирование и debouncing делают это. Кроме того, проверьте мой ответ, обновите его. –

+0

гоча .... проверив это ... btw хорошо концепция .. –