jQuery Tipsy: Simple Overwriting Solution?

馋奶兔 提交于 2019-12-10 11:04:01

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!