0

jQuery Tipsy プラグインを使用していますが、重力を動的に変更できるかどうか疑問に思っています。

私は成功せずに試してきました: http://jsfiddle.net/YSYuu/

とにかくコードは次のとおりです。

$('[data-demo]').tipsy({
    title: 'data-demo',
    gravity: 'n'
});

//changing it on real time
$('.demo').click(function () {
    $('[data-demo]').tipsy({
        title: 'data-demo',
        gravity: 's'
    });
    alert("Gravity changed");
});
4

3 に答える 3

2

問題は、ほろ酔いが速度のために特定の要素でイベントをバインドし、プラグイン内にバインド解除イベントがないことです。できることは、要素を複製することです。そしてそれがおそらく唯一の方法です。(プラグインの制限)。

解決策は次のとおりです。

$('.text').tipsy({
    title: 'data',
    gravity: 's'
})


$(".demo").on("click", function(){
    $(".text").remove().clone().appendTo("body").tipsy({
       title: 'data',
       gravity: 'n'
    })

});

JSFiddle: http://jsfiddle.net/javascript/YSYuu/3/

もちろん、それがあった場所とまったく同じ場所に追加します。その場所を取得するには、使用$(this).parent().children().index(this)してから追加できます$("#whatever li:eq(2)").after("...");

于 2013-07-16T11:35:22.170 に答える
1

要素を複製してから、元の要素を削除します。そして、次のように重力を変更したクローンを追加します。

$('.demo').click(function () {
    var el = $('[data-demo]');
    var clone = $(el.clone());
    el.before(clone);
    el.remove();
    clone.tipsy({
        title: 'data-demo',
        gravity: 's'
    });
    alert("Gravity changed");
});

jsフィドル

于 2013-07-16T11:24:26.920 に答える
1

Tipsy の設定データにアクセスして、ツールチップを作成した後に重力を変更できます。

$('[data-demo]').data('tipsy').options.gravity = 's';

私がテストgravitytitleたところ、良い結果が得られました: http://jsfiddle.net/mikeular/h5y14qe3/6/

于 2015-03-26T18:34:02.947 に答える