Protovis Jquery tipsy не работает с событием клика - PullRequest
1 голос
/ 24 июля 2011

У меня на графике нормально работает я. Событие 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 Ответ

2 голосов
/ 21 сентября 2011

вот обходной путь.Вы можете передать функцию обратного вызова click в 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:

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

...