首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实时更改jQuery Tipsy插件重力

实时更改jQuery Tipsy插件重力
EN

Stack Overflow用户
提问于 2013-07-16 19:04:22
回答 3查看 1.1K关注 0票数 0

我正在使用jQuery Tipsy plugin,我想知道是否有可能动态改变重力。

我一直在尝试,但没有成功:http://jsfiddle.net/YSYuu/

下面是代码:

代码语言:javascript
复制
$('[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");
});
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-07-16 19:35:22

问题是为了提高速度,tipsy在特定的元素上绑定了事件,并且在插件中没有unbind事件。你能做的就是克隆你的元素;这可能是唯一的方法。(插件限制)。

以下是解决方案:

代码语言:javascript
复制
$('.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("...");

票数 2
EN

Stack Overflow用户

发布于 2013-07-16 19:24:27

克隆元素,然后删除原始元素。然后像这样添加改变了重力的克隆:

代码语言:javascript
复制
$('.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");
});
票数 1
EN

Stack Overflow用户

发布于 2015-03-27 02:34:03

您可以在创建工具提示后通过访问tipsy的配置数据来更改重力:

代码语言:javascript
复制
$('[data-demo]').data('tipsy').options.gravity = 's';

我测试了gravitytitle,结果很好:http://jsfiddle.net/mikeular/h5y14qe3/6/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17674860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档