我正在使用jQuery Tipsy plugin,我想知道是否有可能动态改变重力。
我一直在尝试,但没有成功: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");
});发布于 2013-07-16 19:35:22
问题是为了提高速度,tipsy在特定的元素上绑定了事件,并且在插件中没有unbind事件。你能做的就是克隆你的元素;这可能是唯一的方法。(插件限制)。
以下是解决方案:
$('.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-16 19:24:27
克隆元素,然后删除原始元素。然后像这样添加改变了重力的克隆:
$('.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");
});发布于 2015-03-27 02:34:03
您可以在创建工具提示后通过访问tipsy的配置数据来更改重力:
$('[data-demo]').data('tipsy').options.gravity = 's';我测试了gravity和title,结果很好:http://jsfiddle.net/mikeular/h5y14qe3/6/
https://stackoverflow.com/questions/17674860
复制相似问题