Protovis Jquery tipsy不适用于click事件

时间:2011-07-24 17:12:30

标签: javascript jquery javascript-events protovis tipsy

我在我的图表上工作正常。 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();

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

1 个答案:

答案 0 :(得分:2)

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

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

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

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

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

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

    返回功能(d){       .......        $(尖端).mouseleave(清理).tipsy( “节目”);        if(callback){             $(尖端)。单击(回调);           }         };