我正在尝试构建一个类似于鼠标悬停的放大图像的jQuery插件 - 但是在表行上:
var trEnlargedCssMap =
{
position: 'absolute',
left: '50px',
top: '50px',
'font-size': '14px'
}
$('table tr').hover(
function()
{
$(this).clone().css(trEnlargedCssMap).show();
},
function()
{
$(this).hide();
})
它没有接近工作,任何提示?
答案 0 :(得分:2)
您必须将它附加到DOM /表(随时随地)。我将它附加到现有表格。当你将鼠标悬停而不是隐藏它们时,你也应该.remove()
任何克隆的元素。请根据您的应用需要更改属性。
var trEnlargedCssMap = {
position: 'absolute',
left: '50px',
top: '50px',
'font-size': '20px'
}
$('table tr').hover(
function() {
$(this).closest("table").append(
$(this).clone().addClass("cloned-element").css(trEnlargedCssMap).show())
}, function() {
$(this).closest("table").find(".cloned-element").remove();
})
<table>
<tr>
<td>Row 1</td>
<td>Row 1</td>
<td>Row 1</td>
</tr>
<tr>
<td>Row 2</td>
<td>Row 2</td>
<td>Row 2</td>
</tr>
<tr>
<td>Row 3</td>
<td>Row 3</td>
<td>Row 3</td>
</tr>
</table>
答案 1 :(得分:0)
你需要在某处append()
。在这里你只是克隆它,什么也不做......
所以$(this).clone().css(trEnlargedCssMap).appendTo('#myZoomedRow');
答案 2 :(得分:0)
您必须将该克隆元素附加到DOM,并隐藏(或删除它以防止冲突)克隆的实际行中的“new”元素。
var trEnlargedCssMap = {
position: 'absolute',
left: '50px',
top: '50px',
'font-size': '14px'
}
$('table tr').hover(
function(){
$(this).clone().css(trEnlargedCssMap).appendTo("#newRow").show();
},
function(){
$("#newRow").hide();
}
)