jQuery: видимость всплывающей подсказки - PullRequest
0 голосов
/ 19 февраля 2010

В настоящее время у меня есть следующий Javascript на моей странице:

function tooltip(top, left, speed, easing, callback) {
    $(".tooltip").css({"margin-top": top, "margin-left": left});
    var state;

    if(state!="1") {
        if($(".tooltip .anchor").css("display")=="none") {
            var state="1";
            $(".tooltip .anchor").fadeIn("250");
            $(".tooltip .bubble").fadeIn("250");
        }
        else {
            var state="0";
            $(".tooltip .anchor").fadeOut("250");
            $(".tooltip .bubble").fadeOut("250");
        }
    }
}

... и следующий HTML-код:

<a href="javascript:;" onclick="board();"><span class="icon index">Board Index</span></a><a href="javascript:;" onclick="tooltip('10px', '140px', 'slow');"><span class="icon info">Information</span></a><a href="javascript:;" onclick="tooltip('10px', '225px', 'slow');"><span class="icon reply">Reply</span></a><a href="javascript:;"><span class="icon report">Report</span></a>

HTML (пока что «Информация» и «Ответить») ссылаются на функцию «подсказка», которая переключает отображение подсказки.

Моя проблема заключается в следующем: в идеале я мог бы нажать одну кнопку, а затем нажать другую, не переключая отображение подсказки - только положение и содержание. Возможно ли это?

Большое спасибо заранее!

Ответы [ 2 ]

0 голосов
/ 19 февраля 2010

Я не совсем понимаю, что вы пытаетесь сделать, но посмотрите на эту ссылку и посмотрите, хотите ли вы желаемого результата.Вы можете просмотреть источник, чтобы увидеть, как я это сделал.Кроме того, в моем примере подсказка покажет абсолютно позиционированные координаты x и y текущей позиции мыши.

0 голосов
/ 19 февраля 2010

Столько странных вещей с переменной состояния в вашем примере - вот переписать с исправленными:

function tooltip(top, left, speed, easing, callback) {
    $(".tooltip").css({"margin-top": top, "margin-left": left});
    var state;

    if(state != 1) {
        if($(".tooltip .anchor").css("display")=="none") {
            state = 1;
            $(".tooltip .anchor").fadeIn("250");
            $(".tooltip .bubble").fadeIn("250");
        }
        else {
            state = 0;
            $(".tooltip .anchor").fadeOut("250");
            $(".tooltip .bubble").fadeOut("250");
        }
    }
}

Во-первых, не делайте это строкой, а во-вторых, не объявляйте (и не скрывайте другое) в операторах if.

...