问题
How can I change the direction from "n" to "w" without losing the test text and without cloning it?
$(".tipsy").live('mouseover',function() {
$(this).tipsy({gravity: "n", html: true});
$(this).tipsy("show");
});
$(".tipsy").live("click",function() {
$('.tipsy').remove();
$(this).tipsy({gravity: 'w', html: true});
$(this).tipsy("show");
});
<div class="tipsy" title='<u>test link</u>'>TestTestTestTestTestTestTestTestTestTestTest</div>
Here's a fiddle: http://jsfiddle.net/nQvmw/23/
回答1:
As seen in the tipsy plugin homepage, you can pass a function that returns a direction as your gravity option :
$(el).tipsy({gravity: function(){return Math.random()>.5 ? 'w' : 'n';}
Based on this feature, you could easily make a function that returns different directions for different mouse actions (mouseenter,click...) :
var flag = false;
function gravity(){
return flag ? 'n' : 'w';
};
$(".tipsy")
.live('mouseover',function(){
flag = true;
$(this).tipsy("show");
})
.live("click",function() {
flag = false;
$(this).tipsy("show");
})
.tipsy({
gravity: gravity,
html: true
});
Here's the working demo
来源:https://stackoverflow.com/questions/9880728/jquery-tipsy-simple-overwriting-solution