Rafael: Mapael: Update trigger 不起作用,也没有报错

Rafael: Mapael: Update trigger doesn't work, and no errors are given

基于Mapael的this minimal example(部分相关代码在下方):

$('#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}]);
    });

我创造了this example page with an update trigger that works fine. Now I want to move this to my real application php page, and it doesn't work! Please take a look here

烦人的是我浏览器的控制台没有显示任何错误!当我没有看到任何错误时,我该如何调试这个问题?请协助!

如果您需要任何其他信息,请询问。感谢您的努力。

PS:请忽略正文中脚本和 css 代码的不良样式。一旦这个问题得到解决,我会解决这个问题。我不认为这是问题所在,因为工作的示例页面完全相同并且没有这个问题。

首先,请注意您使用的是不同版本的 Maphael:

  • 在它运行的页面上,版本是1.1.0,
  • 在你的页面上它是 2.0.0-dev。

其次,在 Maphael 的 "onUpdateEvent" 方法处设置断点后(第 876 行),事件数据似乎并没有传递到处理程序中。

"update" 事件是否具有与 Maphael/Raphael 1.x 和 2.x 相同的签名?这是你应该看看的地方。

Update: 我看了一下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]);

)

请检查它是否有帮助(尽管我建议您切换到稳定的 1.1.0 版本的 Maphael)。