我正在尝试在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
}
答案 0 :(得分:3)
最有可能的原因是,当您绑定到click
事件时,您的按钮不存在。 $('#popupButton')
返回null
。而不是使用$('#popupButton').click(handlerFunc);
尝试$('#popupButton').live('click', handlerFunc);
。这意味着我们不仅在构建DOM时,而且在对象出现时绑定到事件。