jQuery trigger mousedown registered by addEventListener

前端 未结 2 1248
时光说笑
时光说笑 2020-12-31 09:55

I want to simulate fake mousedown event by jQuery trigger() method, and I register mousedown event by native javascript method - addEventListener(). And I found it can\'t b

2条回答
  •  谎友^
    谎友^ (楼主)
    2020-12-31 10:11

    Try using

    EventTarget.dispatchEvent
    

    MDN link

    Your code will be something like

    var elem = document.getElementById('square');
    elem.addEventListener('mousedown', function () {
        alert('addEventListener');
    });
    $(elem).on('mousedown', function () {
        alert('on');
    });
    
    elem.dispatchEvent(new Event('mousedown'))
    

    You might have to use fireEvent if you are considering IE.

    object.fireEvent(bstrEventName, pvarEventObject, pfCancelled) 
    

    MSDN link

    It would be like

    if (document.createEvent) {
        element.dispatchEvent(event);
    } else {
        element.fireEvent("on" + event.eventType, event);
    }
    

提交回复
热议问题