基于Mapael的这个最小示例(部分相关代码在这里):
$('#refresh').on('click', function() {
// Update some plots and areas attributes ...
var updatedOptions = {'areas' : {}, 'plots' : {}};
// add some new plots ...
var newPlots = {
"Dijon" : {
latitude : 47.323056,
longitude : 5.041944
}
}
$(".mapcontainer").trigger('update', [updatedOptions, newPlots, [], {animDuration : 1000}]);
});
我使用工作正常的更新触发器创建了此示例页面。现在我想把它移到我真正的应用程序 php 页面,但它不起作用!请看这里。
烦人的部分是我的浏览器的控制台没有显示任何错误!当我看不到任何错误时,如何调试此问题?请协助!
如果您需要任何其他信息,请询问。感谢您的任何努力。
PS:请忽略脚本和 css 代码在正文中的不良样式。解决此问题后,我将解决此问题。我认为这不是问题所在,因为工作的示例页面完全相同并且没有此问题。
首先,请注意您使用的是不同版本的 Maphael:
- 在其工作的页面上,版本为1.1.0,
- 在您的页面上,它是 2.0.0-dev。
其次,在 Maphael 的"onUpdateEvent"方法(第 876 行)设置断点后,事件数据似乎没有传递到处理程序中。
"更新"事件是否具有Maphael/Raphael 1.x和2.x的相同签名?这是你应该看的地方。
更新:我看了一下 2.0.0-dev 的内部结构,似乎您的更新代码应该是这样的:
var updatedOptions = {'areas': {}, 'plots' : {},
// add some new plots ...
newPlots: {
"Dijon" : {
latitude : 47.323056,
longitude : 5.041944
}
},
animDuration : 1000
};
$(".mapcontainer").trigger('update', updatedOptions);
(最后一行可能是:
$(".mapcontainer").trigger('update', [updatedOptions]);
)
请检查它是否有帮助(尽管我会重新评论您切换到稳定的 Maphael 1.1.0 版本)。