首先要做的事情:几年前我问过这个问题,但现在发现它不适用于FF: - (
我在表格中有一个resizable div
,想要查找第一个id
的{{1}},我将停止调整td
请参阅下面的代码段和JSFiddle,因为代码段工作不正常。
Chrome中的一切正常。
要获得调整大小的div下面的元素,我使用
div
并获取时间(第一个var elem = document.elementFromPoint(x, y);
的ID)我打电话
td
Chrome会返回正确的var time = $('td:first', $(elem).parents('tr')).attr('id');
(请参阅JSFiddle)
Firefox还返回了id
,但始终是我开始调整大小的id
的{{1}}。
因此,当我从08:00到09:00调整id
的大小时,Chrome会返回 32400 ,这是正确的。
Firefox返回 28800 ,这是不正确的!!
(我知道td
应始终以字母数字字符开头;-))
谢谢你的帮助!对此,我真的非常感激!
div
id
$("#test").mouseover(function() {
$(this).resizable({
grid:45,
autoHide: true,
start: function(event, ui) {
$(this).data('origHeight', ui.originalSize.height);
},
resize: function(event, ui) {
ui.size.width = ui.originalSize.width;
$(this).css({
lineHeight: ui.size.height + 'px',
zIndex: 8000
});
},
stop: function(event, ui) {
var y = ($(this).offset().top + ui.size.height);
var x = $(this).offset().left;
var elem = document.elementFromPoint(x, y);
var time = $('td:first', $(elem).parents('tr')).attr('id');
console.log($(elem));
console.log(time);
}
})
});
答案 0 :(得分:0)
问题已经解决。
var elem = document.elementFromPoint(Math.round(x), y)
舍入x
的值解决了它。不知道为什么但它有效