拥有一个使用该ID从外部文件中获取特定内容的链接(有效,此处没有问题)。然后我更改链接的ID以便新ID,以便可以从外部文件获取新信息,但始终显示相同的信息。所以,我正在寻找一些帮助来弄清楚为什么没有加载新信息而是旧信息。
以下是设置新ID值的代码。它位于代码的完全独立部分。然后它调用函数 fncSetupInfoWindow()并创建绑定。 .windowInfo 是特定元素的类集。
$('#pickedCenterProgram a').text(newProgram[0]).parent().slideDown().attr('id', newVal).attr('title', newProgram);
fncSetupInfoWindow();
function fncSetupInfoWindow() {
$('.windowInfo').unbind('mouseover mouseout').each(function () {
var obj = $(this), position = [], contentID = globalObjects.emptyString, title = obj.attr('title'), contentID = obj.attr('id').toLowerCase();
obj.bind({
mouseover: function (e) {
position = fncGetPositionArray(e.pageX, e.pageY);
fncLoadStatusInfo(position[0], position[1], contentID, title);
},
mouseout: function () {
$('#modInfoWindow').closeModal();
}
});
});
}
以下是加载信息的代码
function fncLoadStatusInfo(x, y, programName, title) {
initLoader.className = 'txt-c'; //create loader
initLoader.iconClass = 'alignVert-b';
$('#modInfoWindow').createModalWindow({ isModal: false, left: x, top: y, ignorePosition: false, title: title, width: 250, hideCloseIcon: true, autoOpen: true }).html(initLoader.createLoader());
$('#modInfoWindow').load('../pages/infoFile.htm ' + '#' + programName);
return false;
}
除了没有使用新分配的ID而是创建页面时的原始ID时,一切都很有效。我已经尝试了很多东西,甚至破坏了模态(又名对话框)窗口都具有相同的结果。
谢谢^。^
感谢。
答案 0 :(得分:0)
问题是你在绑定时使用id
(在.each()
内),而不是在时使用事件(在事件处理程序内)。您可以在事件发生时和简化整体事务:
function fncSetupInfoWindow() {
$('.windowInfo').bind({
mouseover: function (e) {
var pos = fncGetPositionArray(e.pageX, e.pageY);
fncLoadStatusInfo(pos[0], pos[1], this.id.toLowerCase(), this.title);
},
mouseout: function () {
$('#modInfoWindow').closeModal();
}
});
}
使用.hover()
甚至更简单(可能你想要的东西):
function fncSetupInfoWindow() {
$('.windowInfo').hover(function (e) {
var pos = fncGetPositionArray(e.pageX, e.pageY);
fncLoadStatusInfo(pos[0], pos[1], this.id.toLowerCase(), this.title);
}, function () {
$('#modInfoWindow').closeModal();
});
}