0

これはかなり小さくて簡単な質問です。オンラインで調べても何も見つかりませんでしたが、剣道チャートの単体テスト、特に seriesClick イベントが期待どおりに機能することを確認したいと思います。問題は、イベントをトリガーする方法が見つからないようです。jQueryを介してチャートシリーズをターゲットにし、.click()を呼び出そうとしています。このアプローチを試しても何も得られなかったので、絶望の瞬間にすべてをクリックしてみました

$('*').each(function(){
    $(this).click();
});

そのような運はありません。これが chartOptions スニペットです

$scope.chartOptions = {
                //...
                // On Click add the criteria to the serach bar.
                seriesClick: function (series) {
                        console.log("seriesClick");
                        //Do stuff here                            
                        $scope.$apply();
                    }
                }
            };

上記の jQuery コードを単体テストで実行しようとすると、コンソール出力が得られません。ここにあります。

xit('should update the searchbar when a series item has been clicked', inject(function ($compile, $rootScope, $timeout) {
        var scope = $rootScope.$new();
        //Write out the directive
        //We have a directive that will replace this tag with the kendo-chart directive
        var ele = $compile('<chart></chart>')(scope); 
        angular.element(document.body).append(ele);
        scope.$digest();
        $timeout.flush(0);
        scope = ele.isolateScope();

        console.log('clicking everything');
        $('*').each(function () {
            $(this).click();
        });

「専門家」からアドバイスを得ることを期待して、テレリックフォーラムに同じ質問を送信しましたが、SOほど速くは応答がありません。

EDIT Telerikフォーラムでこの投稿に 出くわしましたが、「現在、すぐにサポートされていない」必要がないことを願っています。

4

1 に答える 1

1

テレリックフォーラムで尋ねた後、私は最終的にこの答えにたどり着きました

 element.mousedown().mouseup()    //Trigger events for Chrome, Firefox and IE9
            .trigger(jQuery.Event("MSPointerDown", { originalEvent: {} })).trigger(jQuery.Event("MSPointerUp", { originalEvent: {} }))  //Trigger event for IE10
            .trigger(jQuery.Event("pointerdown", { originalEvent: {} })).trigger(jQuery.Event("pointerup", { originalEvent: {} })); //Trigger event for IE11

どうやら、それは mousedown() mouseup() イベントをリッスンします。そして、IE10 と 11 では機能しないことを確認した後、mousedown()/mouseup() をトリガーする別の方法を使用する必要がありました。

于 2014-05-09T13:30:49.003 に答える