gpt4 book ai didi

javascript - 文本框中包含 JavaScript 的文件 (ZK)

转载 作者:行者123 更新时间:2023-12-01 01:44:44 25 4
gpt4 key购买 nike

我想将此代码移至文件中,以便我可以在更多文本框中重复使用它,而无需复制相同的代码,只需将文件的源代码放入文本框标记中即可。是否可以?谢谢。

<textbox id="TBIdFunc" xmlns:w="client">                                            
<attribute w:name="doKeyDown_">
<![CDATA[
function (evt) {
var keyCode = event.keyCode;
if( keyCode == 8 // back space
|| keyCode == 13 // enter
|| keyCode == 16 // enter
|| (keyCode >= 35 && keyCode <= 40) // home, end, arrows
|| keyCode == 46) { // Delete
this.$doKeyDown_(evt);
} else if ( !evt.shiftKey && // only do without shift key
(keyCode >= 65 && keyCode <= 90)) {// teclas A-Z
this.$doKeyDown_(evt);
} else {
evt.stop();
return;
}
}
]]>
</attribute>
</textbox>

最佳答案

您可以将该函数提取到 js 文件中,在 zul 中加载该文件,然后引用您的方法。让我们简化一下示例:

<textbox xmlns:w="client">                                            
<attribute w:name="doKeyDown_">
<![CDATA[
function (evt) {
console.log('oh hai!');
this.$doKeyDown_(evt);
}
]]>
</attribute>
</textbox>

首先,在您的 webapp 文件夹中创建一个文件 keyDown.js:

function customKeyDown(evt) {
console.log('oh hai!');
this.$doKeyDown_(evt);
}

然后你的 zul 就变成这样了:

<script src="keyDown.js" />
<textbox xmlns:w="client" w:doKeyDown_="customKeyDown" />
<小时/>

如果您想进一步缩短文本框定义,可以引入标记 sclass customKeyDown (或 custom-attribute)并使用 zk.afterLoad ()zk.override() 通常覆盖 doKeyDown_:

zk.afterLoad('zul.inp', function applyCustomKeyDown() {
var xTextbox = {};
zk.override(zul.inp.Textbox.prototype, xTextbox , {
doKeyDown_: function (evt) {
if (jq(this).is('.customKeyDown')) {
console.log('oh hai!');
xTextbox.doKeyDown_.apply(this,arguments); // call original
} else {
xTextbox.doKeyDown_.apply(this,arguments); // call original
}
}
});
});

在 zul 中,您只需应用该 sclass:

<textbox sclass="customKeyDown" />

关于javascript - 文本框中包含 JavaScript 的文件 (ZK),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52055078/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com