我目前正在使用jQuery Tools Tooltip。它的工作方式与IE8 / Firefox相同,但客户端也需要它在IE6中工作。从我在他们网站上看到的所有内容,以及它在项目的其他地方工作的事实,我知道它与IE6兼容。
我相信我正在将工具提示附加到AJAX生成的表行列表中。到目前为止,我已尝试过这两种方式,这两种方式似乎都适用于IE8 / Firefox,但这两种方式都不适用于IE6。
尝试1:
$(document).ready(function() {
// get the undeclared additions and populate the table
$.getJSON("/Drm/Pc/GetUndeclaredAssistanceRecords?partnumber=<%= Model.PartNumber %>",
function(data) {
var rowEntry = "";
var rowClass = "odd";
for (var i = 0; i < data.length; i++) {
// Fix for Bug 71 starts
strComment = "";
for (var k = 0; k < data[i].Comment.length; k++) {
if (data[i].Comment.substring(k, k + 1) == "'")
strComment = strComment + "";
else
strComment = strComment + data[i].Comment.substring(k, k + 1);
}
strComment = strComment.replace(";", ",");
strComment = strComment.substring(0, 400);
var rowEntry = "<tr class='" + rowClass + "'><td class='pcassistresultsCenterAlign'>" + data[i].PurchaseOrder + "</td><td class='pcassistresultsLeftAlign'>" + data[i].SupplierName + "</td><td class='pcassistresultsCenterAlign'>" + data[i].Amount + "<td class='pcassistresultsCenterAlign'>" + data[i].RecordType + "</td></tr>";
rowEntry = rowEntry + "<tr class='" + rowClass + "'><td class='pcassistresultsDetailTitle'>Shipment Date:</td><td>" + data[i].ShipDate + "</td><td class='pcassistresultsDetailTitle'>Input On:</td><td class='pcassistresultsDetailData'>" + data[i].InputOn + "</td></tr>";
rowEntry = rowEntry + "<tr class='" + rowClass + "'><td class='pcassistresultsDetailTitle'>Req Recon:</td><td class='pcassistresultsDetailData'>" + data[i].ReqRecon + "</td><td class='pcassistresultsDetailTitle'>Input By:</td><td class='pcassistresultsDetailData'>" + data[i].InputBy + "</td></tr>";
rowEntry = rowEntry + "<tr class='" + rowClass + "'><td class='pcassistresultsDetailTitle'>From Site</td><td class='pcassistresultsDetailData'>" + data[i].FromSite + "</td><td class='pcassistresultsDetailTitle'>Input By Phone:</td><td class='pcassistresultsDetailData'>" + data[i].InputByPhone
rowEntry = rowEntry + "<tr class='" + rowClass + "'><td class='pcassistresultsDetailTitle' valign='top'>Comment:</td><td colspan='3' rowspan='2' title='" + strComment + "' ><div style='overflow:hidden; height:30px;'>" + data[i].Comment + "</div></td></tr>";
rowEntry = rowEntry + "<tr class='" + rowClass + "'><td> </td></tr>";
//Fix for Bug 71 ends
$('#unDecAddTable tbody>tr:last').after(rowEntry);
rowClass = rowClass == 'odd' ? 'even' : 'odd';
}
$('#unDeclaredAdditions *').tooltip();
});
});
尝试2与上面相同,但删除了.tooltip()部分并在document.ready函数之外添加了以下代码
function PinTooltips() {
$('#unDeclaredAdditions *').tooltip();
$('#declaredAdditions *').tooltip();
}
$('#declaredAdditions').ajaxComplete(function(event, request, settings) {
PinTooltips();
});
有没有人知道我哪里出错了,或者知道IE6的一些不寻常的东西会阻止它工作?
答案 0 :(得分:0)
好的,我发现了问题......这很奇怪。 在项目的其他地方,它将工具提示分配给非常大的字段。在除IE6之外的每个浏览器中,它都没有像我需要的那样将所述工具提示分配给评论td。但出于某种原因,在IE6中,它是。所以,当我试图再次调用.tooltip()时它就破了。结果,我最终输入代码来检查浏览器是IE6。如果是IE6,请不要尝试重新附加工具提示。
非常奇怪,我不知道为什么会这样,但那是我的解决方案。