dojo中事件处理程序的问题

时间:2011-01-24 06:54:50

标签: javascript html dojo

我有一个span我有一个achor标签。对于锚标签,我使用了DojoAttachEvent,现在在我的代码中somwhere我替换span的innerHTML如下所示。

<span id ="xyz"> <a dojoAttachEvent="onmouseover:_myfunction"> txt223 </a> </span>

现在我替换span的文本如下:

var tmptxt = dojo.byId("xyz").innerHTML
dojo.byId("xyz").innerHTML = "some more txt" +tmptxt

现在运行此代码后,当onmoveover被触发时,函数_myfunction不会被调用。

我知道我可以通过使用两个跨度来解决问题,一个用于下一个txt,一个用于锚点,但由于一些css问题(我得到每个跨度在新线上,它有两个colum css,如果我使用2个跨度txt和锚点来自我们不想要的2个不同的线路。我不能这样做。

我尝试使用dojo.connect,但问题是因为某个向导中存在我的span,当我在页面上而不是向导当前页面的页面时触发事件。

2 个答案:

答案 0 :(得分:0)

试试这个代码。可能会有帮助。

<span id ="xyz"> <a dojoAttachEvent="onmouseover:_myfunction();return true;"> txt223 </a> </span> 

答案 1 :(得分:0)

首先,如果这不在小部件模板中,dojoAttachEvent不是您想要的 - 您可能需要更像onMouseOver="_myfunction();"的内容。

其次,如果你用事件替换有关节点的节点的innerHTML,那么你自然会最终破坏该节点的存在,并且事件以及它,你必须以这种或那种方式再次连接它。有没有理由你不能更加小心你的DOM操作?比如,在a标记上添加一个ID(或从span查询)并仅更改该节点的innerHTML?