4

我想使用 jQuery UI 的工具提示功能,但是我需要它,因此当您单击一个元素(在我的情况下为图像)时,工具提示保持打开状态。这可以做到吗?我看不到任何选项。

http://api.jqueryui.com/tooltip/

更新这里是我的代码。我认为第 4 行应该可以工作,但遗憾的是没有:

HTML

<img class="jqToolTip" src="/query.gif" title="Text for tool tip here">

Javascript

$('.jqToolTip').tooltip({
    disabled: false    
}).click(function(){    
    $(this).tooltip( "open" );
//  alert('click');
}).hover(function(){
    // alert('mouse in');
}, function(){
    // alert('mouse out');
});
4

2 回答 2

2

我试图解决同样的问题,但在任何地方都找不到答案。经过 4 个多小时的搜索和试验,我终于想出了一个可行的解决方案。

我所做的是这样的:

  1. 如果单击状态,则立即停止传播
  2. 添加了一个点击处理程序来跟踪状态

//This is a naive solution that only handles one tooltip at a time
//You should really move clicked as a data attribute of the element in question
var clicked;
var tooltips = $('a[title]').on('mouseleave focusout mouseover focusin', function(event) {
  if (clicked) {
    event.stopImmediatePropagation();
  }
}).tooltip().click(function() {
  var $this = $(this);
  var isOpen = $this.data('tooltip');
  var method = isOpen ? 'close' : 'open';
  $this.tooltip(method);
  //verbosity for clarity sake, yes you could just use !isOpen or clicked = (method === 'open')
  if (method === 'open') {
    clicked = true;
  } else {
    clicked = false;
  }
  $this.data('tooltip', !isOpen);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js"></script>
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/themes/redmond/jquery-ui.css" rel="stylesheet" />
<a href="#" title="That's what this widget is">Tooltips</a>

希望这将有助于未来的谷歌用户。

部分感谢这篇文章

于 2015-04-06T19:22:00.347 回答
0

http://api.jqueryui.com/tooltip/#method-open

$('img.my-class').click(function() {
    $(this).tooltip( "open" );
}
于 2013-03-27T17:06:31.103 回答