1

d3.jsでイベントを再帰的にトリガーしようとしています。

これ(d3.jsは関係ありません)は機能します:http: //jsfiddle.net/emepyc/98HmT/

$("#b1").on("click", function() {
        var elem = $(this);    
        console.log(elem);
        console.log("Pressed");
        setTimeout(function(){console.log(elem); $(elem).trigger("click")}, 1000)
 });

しかし、これ(d3.js上)はそうではありません:http://jsfiddle.net/emepyc/bmdKW/

d3.select("#node1").on("click", function() {
        var elem = $(this);
        console.log(elem);
        console.log("Pressed");
        setTimeout(function(){console.log(elem); $(elem).trigger("click")}, 1000)
});

何か案は?

編集: jQueryの「トリガー」は実際のイベントをディスパッチしないようです。独自のリスナーを呼び出すだけです。そのため、d3によって設定された「クリック」イベントハンドラーを表示することはできません。

4

1 に答える 1

0

クリック イベントで、ループを開始する関数を呼び出してみてください。

d3.select("#node1").on("click", function() {
    var elem = $(this);
    console.log(elem);
    console.log("Pressed");
    qwerty();
});

function qwerty() {
    setTimeout(function() {
        console.log("looping");
        qwerty2()
    }, 1000)
};

function qwerty2() {
    console.log("part 2");
    qwerty();
}
于 2012-11-16T15:16:06.243 に答える