overlaySelect 事件未触发

overlaySelect event not fired

使用 primefaces 6.2

我有这个简单的代码:

<p:gmap center="50.848227, 4.356564" zoom="9" type="map" style="width:100%;height:600px" model="#{welcomePage.mapModel}">

        <p:ajax event="overlaySelect" listener="#{welcomePage.onMarkerSelect}" />

</p:gmap>

在 html 页的 header 中:

<script src="http://maps.google.com/maps/api/js?key=*****" type="text/javascript"></script>

.

@WebPage
public class WelcomePage implements Serializable {

    private static final long serialVersionUID = -2444997383150958426L;

    @Getter
    @Setter
    MapModel mapModel;

    @PostConstruct
    public void init() {

        mapModel = new DefaultMapModel();

        ... add data to mapModel...

    }

    public void onMarkerSelect(OverlaySelectEvent event) {

        FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_FATAL, "test", "test"));
    }
}

我不知道为什么,但永远不会触发 onMarkerSelect 方法。有人可以给我提示吗?我以前从未使用过Gmap primefaces组件。

我们使用的是来自我们部门另一个团队的默认页眉和页脚脚本。显然他们大量使用 jquery 脚本,我注意到在 Safari webinfo windows 中使用了多个 jquery 版本。 Primefaces 使用 jquery 插件 1.12.1,我们的团队使用 1.11.0。似乎浏览器接受了这一切,JSF 没有产生任何错误并且 AJAX 请求被触发,但是由于 jquery 版本冲突,执行的脚本似乎默默地 运行 一些代码与 Primefaces javascript 文件不兼容。删除页眉和页脚脚本时,一切都按预期进行!

jQuery 的一个很好的功能当然是检测这种冲突并给出某种警告 ^^。我让其他团队调查这个问题。案件结案。