关于 onclick 与 bind ‘click’ 的讨论

    zTree v3.0 正式版发布后,整体反映还不错,我很高兴。 不过昨天 有位叫做 amixu 的朋友发现了一个让人有些烦恼的bug(请打开 v3.0 正式版 下载文件中的 core/url.html) 你会发现如果在 IE 下 那个 Nothing 的节点点击后依然会进行跳转,return false 失效了。(由于目前机器不是win7 所以 IE9 没有进行测试,这里说的 IE 是 6 7 8 )

 

    经过检查和反复测试,发现原因是 IE 在处理 onclick 和 后期绑定的 click 事件时对于默认操作的处理出现了问题。(个人认为应该属于 IE 的bug) 

 

    因此,昨天我及时修正了 API 中关于 treeNode.click 的说明文档,请大家尽量不要利用 treeNode.click = "return false;" 来阻止点击节点 url 跳转。 需要阻止跳转时,建议 不要将 url 路径保存在 treeNode.url 属性下; 同时利用 onClick 回调函数进行跳转控制。

 

    另外,如果一定要使用click属性,可以参考下面测试代码中使用的 stop 方法来实现。

 

    这里特别感谢 amixu czwlucky 两位朋友的大力协助。 同时也希望大家能一起讨论这个问题。

 

 

    附件中是测试代码

 

    下面是关于测试找出的事件处理机制的差异: