0
我試圖在Tapestry 5.3.7中使用Stitch onEvent mixin。
下面是從那裏的OnEvent的javascript:
T5.extendInitializers({
onEvent: function (spec) {
var element = $(spec.id).observe(spec.event, function() {
var params = {};
if (spec.fieldIds) {
for (var i = 0; i < spec.fieldIds.length; ++i) {
var fieldId = spec.fieldIds[i];
var paramName = "onEvent." + fieldId;
var paramValue = $(fieldId).getValue();
params[paramName] = paramValue;
}
}
var zoneManager = Tapestry.findZoneManagerForZone(spec.zone);
zoneManager.updateFromURL(spec.url, params);
});
}
});
我用它在我的TML這樣的:
<t:form t:id="filterTextForm">
<div style="float:right">
<input id="filterText" t:id="filterText" t:type="textfield"
t:value="filter" zone="configZone" t:autofocus="literal:true" onClick="this.select()" t:mixins="onEvent" event="keyup"/>
</div>
</t:form>
和我的事件方法是這樣的:
void onKeyupFromFilterText(String filter) {
this.filter = filter;
if (request.isXHR()) {
ajaxResponseRenderer.addRender(configZone).addRender(descZone);
}
}
當我有t:mixins="onEvent" event="keyup"
,頁面上沒有任何區域正在更新,不生成AJAX請求。
當我刪除它時,除了我試圖做的部分,我的問題中描述的一切都正常。
我使用的是Tapestry 5.3.7。
是的,有一次我嘗試切換到jQuery。你說它刪除了原型。有沒有辦法完全擺脫jQuery並返回到原型? – Lopina
假設您使用maven構建,請從pom.xml中刪除tapestry-jquery依賴項,並執行乾淨的構建/部署 –
恐怕沒有用。我從pom.xml中刪除了對jquery的所有引用,並進行了乾淨的安裝,但仍無濟於事。 當我在Firefox調試控制檯中檢查它時,我仍然看到對jQuery的調用,即使我看不到如何。 – Lopina