Eu tenho uma dica de ferramenta em um elemento âncora, que envia uma solicitação AJAX ao clicar. Este elemento possui uma dica de ferramenta (no Twitter Bootstrap). Quero que o conteúdo da dica de ferramenta seja alterado quando a solicitação AJAX retornar com êxito. Como posso manipular a dica de ferramenta após o início?
jquery
twitter-bootstrap
tooltip
rebelião
fonte
fonte
$(element).attr('title', 'NEW_TITLE').tooltip('fixTitle').tooltip('show');
$(element).attr('data-original-title', newValue).tooltip('show');
foi a solução de trabalho mais simples para mim.No Bootstrap 3, é suficiente chamar,
elt.attr('data-original-title', "Foo")
pois as alterações no"data-original-title"
atributo já acionam alterações na exibição da dica de ferramenta.ATUALIZAÇÃO: você pode adicionar .tooltip ('show') para mostrar as alterações imediatamente, não precisa passar o mouse e o alvo para passar o mouse para ver a alteração no título
fonte
.tooltip('show');
para obtê-lo para show após a atualizaçãovocê pode atualizar o texto da dica de ferramenta sem realmente chamar show / hide:
fonte
.tooltip('show')
no final da cadeia, funcionou para mim.setContent
eshow
faz o truque! você pode alterardata-original-title
diretamente em vez de usarfixTitle
aqui está uma boa solução se você deseja alterar o texto sem fechar e reabrir a dica de ferramenta.
dessa maneira, o texto é substituído sem fechar a dica de ferramenta (não reposiciona, mas se você estiver fazendo uma alteração de uma palavra, etc, tudo ficará bem). e quando você passa o mouse + volta na dica de ferramenta, ela ainda é atualizada.
** este é o bootstrap 3, para 2 você provavelmente precisará alterar os nomes de dados / classe
fonte
$tip
não é um atributo de$(element)
$(element).attr('title', newTitle).tooltip('fixTitle').parent().find('.tooltip .tooltip-inner').text(newTitle);
para o Bootstrap 4:
fonte
Isso funciona se a dica de ferramenta foi instanciada (possivelmente com javascript):
fonte
$('#tooltip_id').data('bs.tooltip').options.title = 'New_value!';
Para bootstrap 3.x
Parece a solução mais limpa:
Show é usado para atualizar o título imediatamente e não esperar que a dica seja ocultada e mostrada novamente.
fonte
Aqui está a atualização para o Bootstrap 4 :
Mas a melhor maneira é fazer assim:
ou em linha:
Do lado do UX, você apenas vê que o texto é alterado sem efeitos de desbotamento ou ocultar / mostrar e não há necessidade de
_fixTitle
.fonte
Você pode simplesmente mudar
data-original-title
usando o seguinte código:fonte
Bootstrap 4
https://getbootstrap.com/docs/4.1/components/tooltips/#tooltipdispose
fonte
O seguinte funcionou melhor para mim, basicamente estou descartando qualquer dica de ferramenta existente e não me incomodando em mostrar a nova dica. Se chamar show na dica de ferramenta como em outras respostas, ele será exibido mesmo que o cursor não esteja pairando acima dela.
A razão pela qual optei por esta solução é que as outras soluções, reutilizando a dica de ferramenta existente, levaram a alguns problemas estranhos com a dica de ferramenta que às vezes não apareciam ao passar o cursor sobre o elemento.
fonte
data('bs.tooltip')
, em vez dedata('tooltip')
No bootstrap 4, apenas uso e
$(el).tooltip('dispose');
depois recrio normalmente. Portanto, você pode colocar o descarte antes de uma função que cria uma dica de ferramenta para garantir que ela não duplique.Ter que verificar o estado e mexer nos valores parece menos amigável.
fonte
Você pode definir o conteúdo da chamada de dica de ferramenta com uma função
Você não precisa usar apenas o título do elemento chamado.
fonte
Obrigado, este código foi muito útil para mim, achei eficaz em meus projetos
$(element).attr('title', 'message').tooltip('fixTitle').tooltip('show');
fonte
Destrua qualquer dica de ferramenta preexistente para que possamos repovoar com o novo conteúdo da dica de ferramenta
fonte
Não consegui obter nenhuma das respostas funcionando, aqui está uma solução alternativa:
fonte
Acho que Mehmet Duran está quase certo, mas houve alguns problemas ao usar várias classes com a mesma dica de ferramenta e seu posicionamento. O código a seguir também evita erros js, verificando se existe alguma classe chamada "tooltip_class". Espero que isto ajude.
fonte
Mude o texto alterando o texto no elemento diretamente. (não atualiza a posição da dica de ferramenta).
Altere o texto destruindo a dica de ferramenta antiga e criando e mostrando uma nova. (Faz com que o antigo desapareça e o novo desapareça)
Estou usando o método top para animar o "Salvamento". mensagem (usando
 
para que a dica de ferramenta não mude de tamanho) e altere o texto para "Concluído". (mais preenchimento) quando a solicitação for concluída.fonte
Isso funcionou para mim: (bootstrap 3.3.6; jquery = 1.11.3)
O atributo
data-html="true"
permite usar html no título da dica de ferramenta.fonte
Com o objeto Dica de ferramenta Boostrap:
fonte
Para o BS4 (e o BS3 com pequenas alterações) .. depois de horas de pesquisa e testes, eu encontrei a solução mais confiável para esse problema e até resolve o problema de abrir mais de um (dica de ferramenta ou popover) ao mesmo tempo, e o problema de abrir automaticamente após perder o foco etc.
fonte
Eu só testei isso no bootstrap 4 e sem chamar .show ()
fonte
você pode usar esse código para ocultar a dica de ferramenta, alterar seu título e mostrar a dica de ferramenta novamente, quando a solicitação ajax retornar com êxito.
fonte
Estou usando este caminho fácil:
fonte
Útil se você precisar alterar o texto de uma dica de ferramenta depois que ela foi inicializada com attr 'data-original-title'.
fonte