2
我正在创建一个mixin,当文本字段获得焦点时呈现JavaScript文件。帮助在Tapestry5中创建JavaScript混搭?
我是新来的挂毯混入的想法,而且我不确定该在何处,我希望当文本框获得焦点跑我原来的JavaScript文件。
以下是我的代码示例: Java的混合类:
package asc.mixins;
import org.apache.tapestry5.RenderSupport;
import org.apache.tapestry5.annotations.AfterRender;
import org.apache.tapestry5.annotations.Environmental;
import org.apache.tapestry5.annotations.IncludeJavaScriptLibrary;
import org.apache.tapestry5.annotations.InjectContainer;
import org.apache.tapestry5.corelib.base.AbstractTextField;
@IncludeJavaScriptLibrary("js_dasher_mixin.js")
public class DasherMixin {
@Environmental
private RenderSupport renderSupport;
@InjectContainer
private AbstractTextField field;
@AfterRender
void addScript() {
this.renderSupport.addScript("new JSDasher('%s');",
this.field.getClientId());
}
}
的JavaScript混入文件:我的JavaScript文件的
JSDasher = Class.create({
initialize: function(textField)
{
this.textField = $(textField);
this.textField.observe('focus', this.onFocus.bindAsEventListener(this));
},
onFocus: function(event)
{
//call my javascript init() function
}
}
一部分,我希望为运行时的文本框收益重点:
var posX, posY;
// Sets up our global variables and dispatches an init request to the server.
function init() {
posX=0;
posY=0;
canvas = document.getElementById("canvas");
canvasWidth = canvas.offsetWidth;
canvasHeight = canvas.offsetHeight;
if (canvas.getContext) {
ctx = canvas.getContext("2d");
}
canvas.onclick = canvasClicked;
canvas.onmousemove = mouseMoved;
canvasOffsetX = findPosX(canvas);
canvasOffsetY = findPosY(canvas);
sessID = -1;
sendInitRQ(canvasWidth, canvasHeight);
}
我的JavaScript文件是更大的塔上面的n,我的问题是我应该把我的JavaScript代码放在上面?
它应该全部包含在mixin.js文件?如果是的话,究竟应该去哪里?
在此先感谢您的帮助。
感谢您的回复。我仍然有点不清楚,也许我没有正确地说出我的问题。我知道把mixin.js文件放在哪里,我只是不确定是否应该从mixin.js文件中分离出我的原始js代码。如果是这样,我怎么能从我原来的js代码调用init()方法。它应该包含在mixin.js中吗? 我希望这是有道理的。再次感谢。 – shane87 2010-05-10 19:55:52
我更新了答案,因为我误解了这个问题。 – 2010-05-11 05:42:27
再次感谢..再一个问题。 是否可以从mixin.js文件中调用另一个JavaScript文件的方法。我的JavaScript文件非常大,并将请求发送到另一台服务器上运行的php套接字。所以我需要将我的javascript代码与php套接字一起保存在其他服务器的根目录中。即我需要保持mixin.js代码与其他JavaScript代码分离。 我想要做的是以某种方式挂钩onfocus事件中的外部JavaScript代码。 这里的任何帮助都会很棒。 – shane87 2010-05-11 21:51:41