如何使用Javascript以编程方式生成window.event?

如何使用Javascript以编程方式生成window.event?,javascript,jquery,unit-testing,Javascript,Jquery,Unit Testing,我目前正在对一些javascript进行单元测试,它通过单击窗口中的某个项目来处理引发的事件。下面是代码的片段: function someFunction() { var evt = window.event ? window.event : event; if (evt == null) { return; } var nodeElement = evt.srcElement; if (nodeElement == null) { return; }

我目前正在对一些javascript进行单元测试,它通过单击窗口中的某个项目来处理引发的事件。下面是代码的片段:

function someFunction() 
{

    var evt = window.event ? window.event : event;

    if (evt == null) { return; }

    var nodeElement = evt.srcElement;

    if (nodeElement == null) { return; }
    .
    .
    .
}
我当前的方法是尝试在测试文件中创建一个自定义事件,它将填充window.event,这样我至少可以测试nodeElement==null部分。但是我很难做到这一点(不是来自Javascript背景)。如何实际创建自定义事件(在IE中)?我目前正在使用JsTestDriver进行单元测试,因此没有使用html文件。我不介意使用jQuery或简单的Javascript解决方案


谢谢。

我目前在jQuery中写了一些自定义事件。你可以使用
.trigger
.bind
,它非常强大。

我肯定会使用jQuery(或其他框架)。这会让你的生活更轻松。我相信每个浏览器都会有不同的触发方式

使用jQuery,您只需执行以下操作

$(window).trigger("eventname")

正如alex在评论中指出的,您可以使用jQuery创建具有

$("css selector here").jQueryEventFunction(functionToCall);
因此,按照您的示例,如果要在单击标签时调用
someFunction
,可以执行以下操作:

$("#label-id").click(someFunction);
现在,如果你想模拟点击它

$("#label-id").click();
那就行了

编辑您可以使用的窗口事件的

$(window).click(someFunction);

这会将窗口中的任何单击绑定到
someFunction
。如果调用
$(窗口),请单击()将模拟一个点击事件,调用
someFunction

你能做什么
$(“#someid')。点击()
等等?@Alex:我也是jQuery新手。你介意解释一下什么是身份证吗?好的,我试过$(#this')。点击()和$(#this.document)。点击()。没有起作用……请确保用引号括起来-花一点时间查看jquery文档()的“选择器”部分“#some id”是一个css选择器,其中some id是html上的id属性tag@MaKLaV_eS:如果我只想创建一个窗口事件,该怎么办?据我所知,为了触发一个事件,我所需要做的就是在浏览器的某个地方点击,它就会触发一个事件。我想捕捉那个事件,这样我至少可以在javascript中测试后一个条件。@MaKLaV_eS:谢谢更新。我已经尝试了你的代码,也遵循了中的示例,但它仍然不起作用。看起来这个问题与JsTestDriver本身有关。不确定为什么会被提升,但它完全脱离了主题。