搜索问题时,我发现了如何仅使用Jquery测试浏览器事件。但是我没有用。

如何使用Javascript(NOT Jquery)触发某些事件?

我有一个简单的html表单和一个带有'onclick'事件的按钮。
我必须模拟click事件,以便可以在Jasmine中对其进行测试。

我怎样才能做到这一点?

附言我找到了一些解决方案:

function fireClick(node){
    if ( document.createEvent ) {
        var evt = document.createEvent('MouseEvents');
        evt.initEvent('click', true, false);
        node.dispatchEvent(evt);
    } else if( document.createEventObject ) {
        node.fireEvent('onclick') ;
    } else if (typeof node.onclick == 'function' ) {
        node.onclick();
    }
}


但是它只能在独立的Jasmine上工作,而不能与Jasmine一起用于node.js。

最佳答案

模拟“点击”事件:

 var event = new Event("click");
 element.dispatchEvent(event);

07-24 09:44
查看更多