4

我正在使用 moo4q+jquery 和 qUnit+sinon 测试框架。

目前要触发点击事件,我做了以下事情:

object.jThis.click(); // simulate a click event

object.jThis对象映射到的 jQuery 对象(包装器集)在哪里。

对我来说,问题是其他事件,例如.hover()不触发事件的方式与.click().

这只是 jQuery API 中的不一致吗?

编辑:

// wire up event
attach: function() {
    this.jThis.hover(function(eventObj) {
        this.proxied.showOptionsProxy(true);
    }, function() {
        this.proxied.showOptionsProxy(false);
    });
}
// unit test: 
test("Test_hover_shows_menu", 2, function() {
    var target = this.getTarget();
    this.spy(target.proxied, 'showOptionsProxy');
    target.detach(); // must detach only for unit test after setting up spy on the proxy
    target.attach();
    target.jThis.mouseenter();
    ok(target.proxied.showOptionsProxy.calledWith(true), "hovering over options button shows the menu");
    target.jThis.mouseleave();
    ok(target.proxied.showOptionsProxy.calledWith(false), "mousing away from options button hides menu");
});
4

1 回答 1

2

hover()不是事件而是糖.on( "mouseenter mouseleave"),您可以通过触发.mouseenter()进入阶段和.mouseleave()离开阶段来触发悬停

见:http ://api.jquery.com/hover/

演示:http: //jsfiddle.net/2ZLMJ/

于 2012-12-05T13:37:08.453 回答