Всплывающая подсказка JqueryUI при нажатии кнопки вместо зависания появится в другом месте - программирование
Подтвердить что ты не робот

Всплывающая подсказка JqueryUI при нажатии кнопки вместо зависания появится в другом месте

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

То, как я закодировал это, работает только при наведении курсора на верхнюю часть кнопки, а в примерах JQueryUI нет никакой помощи в достижении этого сценария. Как я могу отличаться от эффекта зависания и заставить его работать с событием клика на кнопке? Как я могу это достичь?

Я использую jquery-ui-1.9.0.custom.js и jquery-1.8.2.js для этого.

Код HTML: Я хочу отобразить сообщение поверх этого окна ввода

<input id="myInput" type="text" name="myInput" value="0" size="7" />

Кнопка, которую я нажимаю для всплывающей подсказки

<input id="myBtn" type="submit" name="myBtn" value="myBtn" title="this is not used" class="myBtn" />

Код JQuery

$(document).ready(function() {
    $(".myBtn").tooltip({
               content: function () {
                  return '<span id="msg">Message</span>';
               },
               position: {
                  my: "center bottom",
                  at: "center top"
               }
            });
});
4b9b3361

Ответ 1

Самый простой способ - удалить атрибут title myBtn и перенести свою подсказку на другой элемент. Например:

<a id="myTooltip" title="Message"></a>

Затем вы можете сделать:

$('#myTooltip').tooltip({
    //use 'of' to link the tooltip to your specified input
    position: { of: '#myInput', my: 'left center', at: 'left center' }
});

$('#myBtn').click(function () {
    $('#myTooltip').tooltip('open');
});

Аналогичным образом вы можете закрыть всплывающую подсказку с помощью

$('#myTooltip').tooltip('close');

Чтобы автоматически закрыть всплывающую подсказку после открытия, вам нужно просто вызвать метод close внутри события open:

$('#myTooltip').tooltip({
    open: function (e) {
        setTimeout(function () {
            $(e.target).tooltip('close');
        }, 1000);
    }
});

Использование e.target (поскольку this не будет работать внутри события open) и setTimeout(), чтобы установить ограничение по времени, после которого всплывающая подсказка закроется.