У меня есть таблица изображений. Каждая строка при наведении мыши показывает свое изображение в ранее скрытом элементе div, который был абсолютно позиционирован. При наведении указателя мыши на отображаемое изображение я хочу отменить привязку событий tr mouseleave, чтобы изображение не мерцало, а затем повторно связать события mouseleave, когда я покидаю div изображения.
Я могу отменить привязку события mouseleave, но повторное связывание вызывает мерцание. Соответствующий код:
<table border="1" id="photoTable">
<tbody>
<tr class="item">
<td class="filename">
GraphDataCAQ3UW88.png
</td>
</tr>
</tbody>
</table>
<div id="thisPhoto"></div>
CSS:
#thisPhoto{
display:none;
position:absolute;
left:250px;
top:150px;
border: 1px solid black;
background-color:white;
padding:20px;
z-index:2;
}
JS:
$(document).ready(function(){
(function($){
$.fn.getThisPhoto = function(){
return $(this).each(function(){
//I've left out the code which gets the data to pass to $.get()
$.get('administration/PhotoManagement/thisPhoto.cfm',
data,
function(response){
$('#thisPhoto').html(response).show();
}
);
});
};
})(jQuery);
$('tr.item').hover(function(){
$(this).getThisPhoto();
},
function(){
$('#thisPhoto').hide();
});
$('#thisPhoto').mouseenter(function(){
$('tr.item').unbind('mouseleave');
}).mouseleave(function(){
$('tr.item').bind('mouseleave', function(){
$('#thisPhoto').hide();
});
});
});
РЕДАКТИРОВАТЬ: я взломал его, обернув весь shebang в div и установив mouseout для этого div для запуска функций hide () и bind () ... не совсем то, что я хотел, но это будет сделано в крайнем случае .