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 に答える