我试图达到这个结果:
特点:
我能够复制并显示工具提示,但出于某种原因无法为其设置动画,或者替换它的内容。
我不知道如何选择新的重复元素。
请参阅下面的示例错误,或 jsFiddle 。
html :
<div id="ptsAlert">
<span class="ptsAlert">
message
<div class="ptsAlert-arrow"></div>
</span>
</div>
<table>
<tr>
<td class="btn">01</td>
<td class="btn">02</td>
<td class="btn">03</td>
</tr>
<tr>
<td class="btn">04</td>
<td class="btn">05</td>
<td class="btn">06</td>
</tr>
</table>
的CSS:
h1 {
font-size:50px;
margin:10px;
}
body {
text-align:center;
}
td {
border: 1px solid;
padding: 5px;
cursor: pointer;
}
.ptsAlert {
display:none;
background-color: #EE0000;
color: #FFFFFF;
font-size: 27px;
font-weight: bold;
line-height: 1.7em;
margin: 10px auto;
padding: 0 10px;
position: absolute;
text-align: center;
}
.ptsAlert-arrow{
border-color: #EE0000 transparent transparent;
border-style: solid;
border-width: 8px;
bottom: -15px;
height: 0;
left: 3px;
position: absolute;
width: 0;
}
jQuery的:
//Function to show points alerts
$('.btn').click(function(event) {
var points = 10;
$('#ptsAlert').clone(true, true).contents()
.appendTo('body')
.css('top', (event.pageY - 75) + 'px')
.css('left', (event.pageX - 10) + 'px')
.css('display', 'inline-block')
//.hide().fadeIn();
});
注释行.hide().fadeIn()
会产生以下错误:
NS_ERROR_XPC_BAD_CONVERT_JS: Could not convert JavaScript argument arg 0 [nsIDOMWindow.getComputedStyle]
答案 0 :(得分:4)
//Function to show points alerts
$('.btn').click(function(event) {
$('#ptsAlert').find("> span").clone(true, true)
.css('top', (event.pageY - 75) + 'px')
.css('left', (event.pageX - 10) + 'px')
.css('display', 'inline-block')
.appendTo($('body'))
.hide().fadeIn(); //this line doesn't break the code (anymore)
});
优化
var $body=$(document.body);
var $ps=$("#ptsAlert");
var $tltp = $ps.find(">span");
$body.on("click",".btn",function(event) {
$tltp.clone(true, true)
.css('top', (event.pageY - 75) + 'px')
.css('left', (event.pageX - 10) + 'px')
.css('display', 'inline-block')
.appendTo($body)
.hide().fadeIn();
});