JQuery Tipsy: простое решение для перезаписи? - PullRequest
2 голосов
/ 27 марта 2012

Как изменить направление с «n» на «w», не теряя тестовый текст и не клонируя его?

$(".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>

Вот скрипка: http://jsfiddle.net/nQvmw/23/

1 Ответ

2 голосов
/ 30 марта 2012

Как видно на домашней странице пьяного плагина, вы можете передать функцию, которая возвращает направление в качестве опции гравитации:

$(el).tipsy({gravity: function(){return Math.random()>.5 ? 'w' : 'n';}

На основе этой функции вы можете легко сделатьфункция, которая возвращает разные направления для разных действий мыши (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
    });

Вот рабочая демонстрация

...