我正试图在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时绑定到事件,而且在对象出现时绑定到事件。