gpt4 book ai didi

javascript - bootstrap 工具提示保持打开状态(IE、Firefox)

转载 作者:行者123 更新时间:2023-11-28 06:50:30 26 4
gpt4 key购买 nike

已解决。代码将反射(reflect)更改(并有注释)

我将尝试首先简洁地描述问题,然后提供详细信息。

当将鼠标悬停在表中单列下的表数据元素上时,我使用 Bootstrap 的工具提示来显示一些文本。要访问此表,您可以通过单击下拉列表下的项目来导航到该表。选择下拉项后,如果在呈现表格/页面时,鼠标恰好悬停在具有工具提示的表格元素上,则工具提示将保持打开/卡在页面上(在 IEFirefox 仅限)。

下面是呈现表格并生成工具提示的 JavaScript。我正在使用 KendoGrid 生成并跟踪从数据库中提取的信息。 jQuery、bootstrap、knockout 和 Kendo 是该网页前端的基础。

有什么我可以重新格式化来解决这个问题吗?或者任何地方已知的解决方法?感谢所有的意见。谢谢!

JavaScript

var createGrid = function () {
$('#AvailableAttachments').html('').kendoGrid({
columns: self.AvailableColumns(),
dataSource: {
data: [],
sort: self.Type() == 'Labor' ? { field: 'Description', dir: 'asc' } : { field: 'ReferenceNumber', dir: 'asc' }
},
selectable: true,
sortable: true,
scrollable: true,
resizable: true,
change: self.AttachmentGridChange,
dataBound: self.availableGridDataBound
});
};

var updateGrid = function () {
/*Destroy all previous table's tooltips*/
$.each($('#AvailableAttachments').data('kendoGrid').table.find('tr'), function (i, row) {
$(row).find('td.hoverDescription').tooltip('destroy');
});

createGrid();
var selectedCategory = {
/*Grab some parameters*/
};

app.ajaxLoadingPanel = '#AvailableAttachments .k-grid-content';
$.getJSON(app.baseUrl + self.Type.peek() + 'Attachment/Get', selectedCategory, function (data) {
var oldSort = $('#AvailableAttachments').data('kendoGrid').dataSource._sort;
var newDS = new kendo.data.DataSource();
newDS.data(data);
if (typeof oldSort != 'undefined' && oldSort.length > 0) {
newDS.sort(oldSort[0]);
}
$('#AvailableAttachments').data('kendoGrid').setDataSource(newDS);
filterFavorites();
$('#btnEditPart').prop('disabled', true);
$('#btnDeletePart').prop('disabled', true);

$.each($('#AvailableAttachments').data('kendoGrid').table.find('tr'), function (i, row) {
generateToolTip(row);
});
});
}

function generateToolTip(row) {

var description = /*Do some parsing to get the information to display*/
...
...
$(row).find('td.hoverDescription').attr('data-original-title', description);
$(row).find('td.hoverDescription').tooltip({ container: '#AttDescriptionToolTip', placement: 'left', html: true, opacity: 0.7 });
}

最佳答案

我明白了。这是缓存在重新呈现信息之前保留前一个表的内容的问题。我必须在工具提示上手动调用 destroy,以便在更新表之前不会发生此类情况。

$('row').find('td.hoverDescription').tooltip('destroy');

我将更新上面的代码以反射(reflect)这一点。

关于javascript - bootstrap 工具提示保持打开状态(IE、Firefox),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32995427/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com