Wicket Ajax 适用于 Firefox 和 IE,但不适用于 Chrome 和 Safari

Wicket Ajax works in Firefox and IE but not Chrome and Safari

我使用的是 Wicket 7.6,我有一些这样的代码

yearGroupDdl.addToComponent(new AjaxXSRFFormComponentUpdatingBehavior("change", token) {
            @Override
            protected void onUpdate(AjaxRequestTarget target) {
                selectedYearGroup = yearGroupDdl.getComponent().getModelObject();
                filter.setYearGroup(selectedYearGroup);
                target.add(content);
            }
        });

所以这段代码在 Firefox 和 IE 中运行良好,我在 Dev Tools 中看到了请求。但是当我使用 Chrome 并且 Safari 代码不起作用并且开发工具中甚至没有 ajax 请求时,什么也没有发生并且 OnUpdate 不会触发。在 Chrome 的开发工具中我有错误

Uncaught TypeError: $(...).tooltip is not a function
    at HTMLDocument.<anonymous> (survey_view;jsessionid=FBCB6EED4CCEB02479F1B60D16E3539C?1&entityId=ac4c2a81-9887-4324-a8cf-e463c781475f:48)
    at i (jquery-1.12.4-ver-8195A8C8C12FE76B1AF13FF30D4EC630.js:2)
    at Object.fireWith [as resolveWith] (jquery-1.12.4-ver-8195A8C8C12FE76B1AF13FF30D4EC630.js:2)
    at Function.ready (jquery-1.12.4-ver-8195A8C8C12FE76B1AF13FF30D4EC630.js:2)
    at HTMLDocument.K (jquery-1.12.4-ver-8195A8C8C12FE76B1AF13FF30D4EC630.js:2)

顺便说一句,在 IE 和 Firefox 控制台中没有这样的错误。此页面也没有工具提示。那么,我怎样才能使它在 Chrome 中工作?也许有一些 ajax 问题与 Chrome 有关?我正在使用 Chrome 85.0.4183.102

如果出现 JavaScript 错误,则不会执行错误之后的所有内容。

$('#someElement').tooltip();                            // 1
$('#anotherElement').on('change', function() {...});    // 2

如果 (1) 处出现错误,则 (2) 根本不会执行,因此更改 #anotherElement 的值不会触发事件侦听器。 IE。 Wicket 不会知道该值已更改,也不会向服务器发出 Ajax 调用以通知它。

如您所说,tooltip() 抛出错误,因为 (Bootstrap ?!) 库未添加到当前页面。临时添加它以查看这是否解决了下拉元素(和 Ajax)的问题。执行此操作后,您可以在 tooltip() 中放置一个断点并调查它被调用的原因。