当我将鼠标悬停在表格中的行上时,会显示图像,当鼠标悬停在图像上时,会显示工具提示。 当我将鼠标悬停在工具提示中的选项(即test1,test2)时,放置鼠标光标的选项应突出显示或更改其背景颜色,以便用户知道他们将要点击的工具提示中的哪个选项。 请找小提琴http://jsfiddle.net/0w9yo8x6/65/
以下是示例javascript代码:
$(function() {
var rowData;
$(document).tooltip({
items: "img, [data-title]",
content: function () {
var element = $(this);
if (element.is("img"))
{
rowdata = element.attr("data-title");
$(document).off('click', '#test');
$(document).on('click', '#test', function() {
test();
});
}
return $(this).prop('title');
},
show: null,
close: function (event, ui) {
ui.tooltip.hover(
function () {
$(this).stop(true).fadeTo(1000, 1);
},
function () {
$(this).stop(true).fadeOut(200, function () {
$(this).remove();
})
});
},
position: {
my: "left",
at: "right"
}
});
});
$(function () {
$('.one').attr('title', $('.myTooltipTable').remove().html());
$(document).tooltip();
});
答案 0 :(得分:1)
我认为这正是您所寻找的:http://jsfiddle.net/0w9yo8x6/66/
你必须要小心何时使用id以及何时使用类。
.toolTipHover:hover {
background-color:lightgray;
}
<table class="myTooltipTable" style="position:absolute;">
<tr><td> <span id="test" class="toolTipHover">test1</span></td></tr>
<tr><td> <span id="test" class="toolTipHover">test2</span></td></tr>
</table>
在上面的html中,你看到id =“test”有两个不同的东西?其中只有一个应该注册(第一个),因为在DOM上,ID必须是唯一的。所以我实现了一个类toolTipHover并将css应用于该类。
我没有触及任何其他代码,但我建议回过头代码以确保id是唯一的,如果有多个元素需要应用相同的函数,可能会添加一个类最好的选择。
答案 1 :(得分:1)
您无需编辑HTML并添加其他类。您可以通过添加简单的CSS
悬停效果来实现此目的:
您只需添加以下代码:
.ui-tooltip-content span:hover {
background-color:Orange;
transition:all 0.4s ease-in-out;
}
请参阅以下完整代码:
$(function() {
var rowData;
$(document).tooltip({
items: "img, [data-title]",
content: function () {
var element = $(this);
if (element.is("img"))
{
rowdata = element.attr("data-title");
$(document).off('click', '#test');
$(document).on('click', '#test', function() {
test();
});
}
return $(this).prop('title');
},
show: null,
close: function (event, ui) {
ui.tooltip.hover(
function () {
$(this).stop(true).fadeTo(1000, 1);
},
function () {
$(this).stop(true).fadeOut(200, function () {
$(this).remove();
})
});
},
position: {
my: "left",
at: "right"
}
});
});
$(function () {
$('.one').attr('title', $('.myTooltipTable').remove().html());
$(document).tooltip();
});
td.myData > img {
display: none;
float:right;
height: 19px;
}
td.myData:hover > img {
display: inline-block;
}
.ui-tooltip-content span {
transition:all 0.4s ease-in-out;
}
.ui-tooltip-content span:hover {
background-color:Orange;
transition:all 0.4s ease-in-out;
}
<script>
function test(){
alert("test invoked");
}
</script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.1/themes/smoothness/jquery-ui.css" />
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.1/jquery-ui.min.js"></script>
<table class="myTooltipTable" style="position:absolute;">
<tr><td> <span id="test" >test1</span></td></tr>
<tr><td> <span id="test" >test2</span></td></tr>
</table>
<br/><br><br>
<table border="1">
<tr>
<td class="myData">Data1 <img class="one" id="one" data-title="Data1" src="http://ssl.gstatic.com/gb/images/b_5dae6e31.png" width="15" height="15" alt="" />
<img class="two" id="two" src="https://www.webkit.org/blog-files/acid3-100.png" width="15" height="15" style="visibility:hidden;"/>
</td>
</tr>
<tr>
<td class="myData">Data2 <img class="one" id="one" data-title="Data2" src="http://ssl.gstatic.com/gb/images/b_5dae6e31.png" width="15" height="15" alt="" />
<img class="two" id="two" src="https://www.webkit.org/blog-files/acid3-100.png" width="15" height="15" style="visibility:hidden;"/>
</td>
</tr>
<tr>
<td class="myData">Data3 <img class="one" id="one" data-title="Data3" src="http://ssl.gstatic.com/gb/images/b_5dae6e31.png" width="15" height="15" alt="" />
<img class="two" id="two" src="https://www.webkit.org/blog-files/acid3-100.png" width="15" height="15" style="visibility:hidden;"/>
</td>
</tr>
</table>