Как я могу проверить два разных события одновременно [дублировать]

Это дерьмовая техника, но она в значительной степени гарантирована:

<img ...  onerror="this.parentNode.removeChild(this);">
10
задан Neal 7 August 2013 в 17:23
поделиться

5 ответов

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

$('img').hover(function(){
   $(this).toggleClass('active'); // if hovered then it has class active
});
$(document).keypress(function(e) {    
    if(e.which == 100){
       $('.active').remove(); // if d is pressed then remove active image
    }
});

FIDDLE

5
ответ дан ᾠῗᵲᄐᶌ 18 August 2018 в 18:17
поделиться
  • 1
    Это лучше всего подходит моим потребностям, спасибо! – TheDavil 28 September 2013 в 23:00

Я добавил лучший пример с jsFiddle: http://jsfiddle.net/cUCGX/ (Наведите курсор на одно из полей и нажмите enter.)


Дайте каждому изображению on ('mouseover') и установите переменную на основе этого изображения.

Итак

var activeImage = null;

myImage.on('mouseover', function() {
  activeImage = 'myImage';
});

myImage2.on('mouseover', function() {
  activeImage = 'myImage2';
});

$(document).keypress(function(e) {
  if (e.which == 'certainKeyPress'  && activeImage) {
    //do something with activeImage
    console.log('The cursor was over image: ' + activeImage + ' when the key was pressed');
  }
});

Возможно, также добавьте onmouseout для каждого изображения, а также очистить activeImage, если вы хотите, чтобы клавиша нажала только на работу WHEN, когда она зависала.

4
ответ дан crowebird 18 August 2018 в 18:17
поделиться

Используйте это, чтобы проверить, находится ли мышь над изображением с id img:

$('#img').is(":hover")
1
ответ дан herman 18 August 2018 в 18:17
поделиться

Вы должны использовать событие mousemove для постоянного хранения x & amp; y в глобальной переменной.

Затем в обработчике нажатия возьмите элемент в последней известной позиции мыши с помощью метода document.elementFromPoint (x, y).

См. https://developer.mozilla.org/en-US/docs/Web/API/document.elementFromPoint

2
ответ дан Loic 18 August 2018 в 18:17
поделиться

Я собираюсь пойти дальше и некрутить это, когда я играл с этим, и нашел, что мне больше понравилось мое быстрое решение. Это может быть не самое лучшее, но для моих нужд оно лучше работало, когда мне понадобилось решение типа пространства имен, в котором обработчик был бы удален, когда dom находился в определенном состоянии (sortable):

// Create handler for binding keyup/down based on keyCode
// (ctrl in this example) with namespace to change the cursor
var setCursorBindings = function() {
    $(document).on('keydown.sortable', function(event) {
        if (event.keyCode === 17) {
            $('body').css('cursor', 'pointer');
        }
    }).on('keyup.sortable', function(event) {
        if (event.keyCode === 17) {
            $('body').css('cursor', 'inherit');
        }
    });
};

// Create a handler for reverting the cursor 
// and remove the keydown and keyup bindings.
var clearCursorBindings = function() {
    $('body').css('cursor', 'inherit');
    $(document).off('keydown.sortable').off('keyup.sortable');
};

// Use the jQuery hover in/out to set and clear the cursor handlers
$('.myElementSelector').hover(function() {
    setCursorBindings();
}, function() {
    clearCursorBindings();
});

Протестировано в Chrome v41

2
ответ дан Russell Shingleton 18 August 2018 в 18:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: