最近在做个相册,把它做成全 Ajax 型似乎不错,反正该死的搜索引擎也不可能来搜索我的图片资源。但在制作过程中遇到了一个问题。
于是我编写了一个函数:
我试着用通俗的语言描述一遍,以便初学者也能看懂:
简单来说就是在 A页 用 XmlHttp 这个内置对象异步读取 B页 的内容,读取完成后把得到的内容用 innerHTML 方法填充到 A页 中的某个元素,比如一个 div 中,但是 B页 返回的内容中包含有需要立刻执行的 Javascript 脚本。
填充的脚本是不会立刻执行的,所以我用了 onclick 事件,以便在使用时激活它。问题出现了,我实现了让它执行脚本,但是 new Ajax.InPlaceEditor 显然生成了一些 onclick 事件的内容,导致每次点它都多产生了一个输入文本框。
我在做了一些试验后意识到其实它并不是需要立刻执行,而是在使用到它的时候只需要执行第一次。那么解决方法就很简单了:
提醒一点,必须先事件清空,在执行后面的事件,为什么就不用说了吧。这个问题耗费了我不少时间,为什么我一开始没有想到呢,或许我太依赖搜索引擎了,在查了大量动态载入资料后才意识到我的解决方向错了。
写这么多废话,也为了做个备份,也算个教程吧。看来以后我得灵活一点。