我试图以递归方式触发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设置的“click”事件处理程序。
答案 0 :(得分:0)
尝试让click事件调用一个函数然后开始循环:
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();
}