2013-10-10 9 views
8

Sto provando a lavorare con il tooltip di jQuery UI e penso che possa mancare qualcosa.Semplice suggerimento dell'interfaccia utente jQuery senza attributo titolo

voglio il più semplice possibile tooltip di presentarsi senza specificare la proprietà del titolo.

credo che dovrei essere in grado di chiamare questo praticamente ovunque nel mio javascript:

$('#ContactName').tooltip({ content: 'Hey, look!' }).tooltip('open'); 

Questo non funziona. Sto facendo qualcosa di sbagliato?

MODIFICA: dovrei ricordare che #ContactName è un input [tipo = testo], ed è in una finestra di dialogo dell'interfaccia utente jQuery.

MODIFICA 2: OK, ha funzionato. Non capisco davvero perché, però.

$($('#ContactName').parent()).tooltip({ 
    items: '#ContactName', 
    content: 'Hey, look!' 
}); 

Funziona su passaggio del mouse. C'è comunque che posso, nello stesso codice, aprirlo immediatamente?

EDIT 3: Questo è quello che ho finito con:

  $($('#ContactName')).tooltip({ 
       items: '#ContactName', 
       content: $(this).text(), 
       position: { 
        my: 'left+15', 
        at: 'right center' 
       }, 
       tooltipClass: 'ui-state-error' 
      }).tooltip("open"); 
+0

Vedi anche: http://forum.jquery.com/topic/jquery-ui-tooltips-require-a-title-tag – KyleMit

risposta

17

Quando si imposta l'opzione content potrebbe anche essere necessario specificare l'opzione items.

vedere la loro documentazione API e questo jsFiddle example

<span id="ContactName">Test</span> 

$("#ContactName").tooltip({ 
    items: "span", 
    content: "Awesome title!" 
}).tooltip("open"); 
+0

Perché deve essere vincolato al contenitore? –

+0

@JoshYoung, vedi aggiornamento. Non ha bisogno di essere, ma devi legarlo a qualcosa e poi dirlo in modo specifico quali elementi guardare. Non sono sicuro di come fare riferimento a 'this' nell'elemento options, ma puoi semplicemente usare il selettore di elementi. – Brandon

+0

Funziona. C'è un modo per farlo aprire immediatamente? –

1

Questo è un po 'hacky ma quando items non funziona per voi (diciamo che si sta facendo per più selettori in una sola volta) è anche possibile impostare titolo al volo:

$($('#ContactName')). 
     attr('title', ''). 
     tooltip({ 
      content: $(this).text(), 
      position: { 
       my: 'left+15', 
       at: 'right center' 
      }, 
      tooltipClass: 'ui-state-error' 
     }).tooltip("open"); 
+0

Il valore corretto per 'content' dovrebbe essere:' function() {return $ (this) .text(); } '. anche 'item' dovrebbe essere impostato. –

Problemi correlati