我正试图在OpenLayers弹出窗口中放置一个按钮。当按钮显示正确并显示以下代码时,单击按钮时不会执行函数“handlerfunc”。我发布的代码段都在另一个函数中(因此handlerfunc实际上是一个嵌套函数)。我使用jquery来处理按钮本身。有什么可能出错的想法吗?谢谢!

    var feature = new OpenLayers.Feature(presences, ll);
        feature.popupClass = popupClass;
        feature.data.popupContentHTML = "<button id='popupButton'>Click me</button>";
        feature.data.overflow = (overflow) ? "auto" : "hidden";
        feature.data.icon = markerIcon;
    $('#popupButton').button();
    $('#popupButton').click(handlerFunc);


 function handlerFunc() {
    // do something
 }

最佳答案

最可能的原因是,当绑定到click事件时,您的按钮不存在。$('#popupButton')返回null。不要使用$('#popupButton').click(handlerFunc);尝试$('#popupButton').live('click', handlerFunc);。这意味着我们不仅在构建dom时绑定到事件,而且在对象出现时绑定到事件。

09-26 10:08