Protovis jQuery 醉酒不适用于点击事件

发布于 2024-11-25 19:25:49 字数 789 浏览 1 评论 0原文

我在我的图表上工作得很好。 mouseover 事件工作正常,但是当我添加 click 事件时,它没有按照我想要的方式执行 click 事件。

以下是我的代码:

var vis = new pv.Panel()
            .width(w)
            .height(h);

            vis.add(pv.Bar)
            .data(data)
            .width(4)
            .left(function() 5 * this.index)
            .height(function(d) Math.round(d*4))
            .bottom(0)
            .text(function(d) d.toFixed(1))
            .event("mouseover", pv.Behavior.tipsy({gravity: "w", fade: true}))
            //If I remove the mouseover event, the click event will work but not when both are veing put together.
            .event("click", function() self.location = "http://stanford.edu");

            vis.render();

任何人都可以帮我解决这个问题吗?

I have tipsy working fine on my chart. The mouseover event worked fine but when I added a click event, it doesn't execute the click event as I wanted.

Below is my code:

var vis = new pv.Panel()
            .width(w)
            .height(h);

            vis.add(pv.Bar)
            .data(data)
            .width(4)
            .left(function() 5 * this.index)
            .height(function(d) Math.round(d*4))
            .bottom(0)
            .text(function(d) d.toFixed(1))
            .event("mouseover", pv.Behavior.tipsy({gravity: "w", fade: true}))
            //If I remove the mouseover event, the click event will work but not when both are veing put together.
            .event("click", function() self.location = "http://stanford.edu");

            vis.render();

Can anyone help me solve this issue?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

女中豪杰 2024-12-02 19:25:50

这是一个解决方法。您可以将点击回调函数传入 pv.Behavior.tipsy 并调用其中的点击事件。

  1. 修改 pv.Behavior.tipsy(...) 以传入回调函数:

    pv.Behavior.tipsy = function(opts, callback)

  2. < p>修改事件调用以传入回调函数:

    .event("mouseover", pv.Behavior.tipsy({gravity: "w", fade: true}, function(){alert('点击回调');}))

  3. 修改protovis.tipsy.js中返回函数的最后一行:

    返回函数(d) {
    …………
    $(tip).mouseleave(cleanup).tipsy("show");
    如果(回调){
    $(提示).click(回调);
    }
    };

here's a workaround. you can pass in a click callback function into pv.Behavior.tipsy and call the click event within it.

  1. modify pv.Behavior.tipsy(...) to pass in a callback function:

    pv.Behavior.tipsy = function(opts, callback)

  2. modify event call to pass in a callback funciton:

    .event("mouseover", pv.Behavior.tipsy({gravity: "w", fade: true}, function(){alert('click call back');}))

  3. modify the last line in return function in protovis.tipsy.js:

    return function(d) {
    .......
    $(tip).mouseleave(cleanup).tipsy("show");
    if(callback) {
    $(tip).click(callback);
    }
    };

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文