我正在尝试在tipsy打开/关闭后设置一个回调函数。
function addText()
{
$('#text').html('Tipsy is now open !');
}
$('.tipsy').tipsy(addText); 我想让addText()在tipsy打开后运行,但它没有。
有没有一种简单的方法可以在不修改tipsy核心代码的情况下做到这一点?
这是我的jsfiddle:http://jsfiddle.net/Tqcgr/1/
发布于 2012-11-23 20:58:55
添加onShow和onHide回调很容易。看看这个:http://jsfiddle.net/Tqcgr/2/
但是,你需要修改显示和隐藏方法。
//show
var callback = this.options.onShow,
element = this.$element[0],
runCallback = function() {
if(callback){
callback.call(element);
}
};
//invoke
if (this.options.fade) {
$tip.stop().css({opacity: 0, display: 'block', visibility: 'visible'}).animate({opacity: this.options.opacity}, runCallback);
} else {
$tip.css({visibility: 'visible', opacity: this.options.opacity});
runCallback();
}
//hide
var callback = this.options.onHide,
element = this.$element[0],
runCallback = function() {
if(callback){
callback.call(element);
}
};
//invoke
if (this.options.fade) {
this.tip().stop().fadeOut(function() { $(this).remove(); runCallback()});
} else {
this.tip().remove();
runCallback();
}发布于 2012-11-23 20:44:41
那么,让我们看一下文档:http://onehackoranother.com/projects/jquery/tipsy/
Tipsy不支持回调,但支持参数的回调函数:例如title。这个函数会做我们想做的事情,然后简单地返回原始标题,就像我们没有使用这个自定义回调函数一样
$(function () {
function addText(el)
{
$('#text').html('Tipsy is now open !');
return $(el).attr('original-title');
}
$('.tipsy').tipsy({
gravity: 'w',
title: function() {
return addText(this);
}
});
});示例可以在这里看到:http://jsfiddle.net/Rf8qY/
https://stackoverflow.com/questions/13527580
复制相似问题