2012-10-26 9 views
16

Używam JTueryUI tooltip do wyświetlania niektórych dynamicznych wiadomości do użytkownika. Zasadniczo chcę wyświetlić etykietę narzędzia na górze pola wejściowego, gdy użytkownik kliknie przycisk.Etykieta narzędzia JqueryUI po kliknięciu przycisku zamiast wskaźnika myszy pojawia się w innym miejscu.

Sposób, w jaki to zrobiłem, działa tylko po najechaniu na przycisk, a w przykładach JQueryUI nie ma pomocy w osiągnięciu tego scenariusza. Jak odróżnić efekt unoszący i czy działa z kliknięciem przycisku? Jak mogę to osiągnąć?

Używam do tego jquery-ui-1.9.0.custom.js i jquery-1.8.2.js.

HTML kod: chcę wyświetlić komunikat na górze tego okna

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

przycisk INPUT, który klikam na zamówienie popup tooltip

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

kodu jQuery

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

Odpowiedz

18

Najprostszym sposobem jest usunięcie atrybutu tytułu z myBtn i przeniesienie etykiety narzędzia na inny element. Na przykład:

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

Następnie można zrobić:

$('#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'); 
}); 

Podobnie można zamknąć podpowiedź z

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

Aby automatycznie zamknąć podpowiedź po otwarciu wystarczy wywołaj metodę close wewnątrz zdarzenia open:

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

Korzystanie e.target (jak this nie będą działać wewnątrz przypadku open) i setTimeout() ustawić limit czasu, po którym etykietka zostanie zamknięte.

+1

Dodałem zdarzenie close do innego zachowania użytkownika i działa. Thx o pomoc @Elliott – Swarne27

+0

co zrobić, jeśli chcę zamknąć podpowiedź automatycznie po jej otwarciu programowym? – Swarne27

+0

zobacz moją edycję – Elliott

Powiązane problemy