以文本方式查看主题 - 计算机科学论坛 (http://bbs.xml.org.cn/index.asp) -- 『 SVG/GML/VRML/X3D/XAML 』 (http://bbs.xml.org.cn/list.asp?boardid=21) ---- 关于鼠标事件的响应 (http://bbs.xml.org.cn/dispbbs.asp?boardid=21&rootid=&id=36073) |
-- 作者:newone -- 发布时间:7/26/2006 11:40:00 AM -- 关于鼠标事件的响应 为了实现在SVG显示区域任意点击都有响应。一共3个文件: JS脚本test.js: function Init(evt) { var SVGDoc=evt.target.ownerDocument; var MainSVG=SVGDoc.getElementById("main"); MainSVG.addEventListener("mousedown",svgMouseDown,false); } function svgMouseDown(evt) { alert("MouseDown"); } SVG文件test.svg: HTML文件: 这些文件的内容都很简单。不能够实现我的需求,点击SVG文件完全没有任何反应,不知为什么,谢谢!
|
-- 作者:vagerent -- 发布时间:7/26/2006 1:44:00 PM -- 关注,学习。 [此贴子已经被作者于2006-7-26 14:14:05编辑过]
|
-- 作者:raisuny -- 发布时间:7/26/2006 2:17:00 PM -- 把var MainSVG=SVGDoc.getElementById("main"); 换成var MainSVG=SVGDoc.getElementById("svg); |
-- 作者:newone -- 发布时间:7/26/2006 2:21:00 PM -- 哪有ID是SVG的元素?SVG本身就是元素。实践证明也是错的。 |
-- 作者:tamefox -- 发布时间:7/26/2006 7:41:00 PM -- 你在SVG中加入一个元素,点击这个元素,就会激发你所动态定义的事件。因为SVG元素本身只能激发onload, onunload, onabort, onerror, onresize,onscroll和onzoom事件。 <svg id="main" width="470px" height="460px" viewBox="0 0 240 220"> <rect width="100" height="15"/> </svg>
|
-- 作者:newone -- 发布时间:7/26/2006 9:12:00 PM -- “SVG元素本身只能激发onload, onunload, onabort, onerror, onresize,onscroll和onzoom事件。“这个依据在什么地方呢? 因为我见过我所写代码的应用。 |
-- 作者:tamefox -- 发布时间:7/26/2006 9:21:00 PM -- <基于XML的SVG应用指南>这本书的第179页或者参考svg规范 |
-- 作者:newone -- 发布时间:7/26/2006 9:28:00 PM -- 恩,找到了,谢谢! ENTITY % SVG.DocumentEvents.attrib "%SVG.onunload.attrib; %SVG.onabort.attrib; %SVG.onerror.attrib; %SVG.onresize.attrib; %SVG.onscroll.attrib; %SVG.onzoom.attrib; |
-- 作者:newone -- 发布时间:7/26/2006 9:42:00 PM -- 可是奇怪的是,把事件名称改成SVGLoad的时候还是不行 |
-- 作者:welfred -- 发布时间:7/27/2006 10:45:00 AM -- 在保持你文档结构不变的条件下,JS脚本可以改成: function Init(evt) { var SVGDoc=evt.target.ownerDocument; var MainSVG=SVGDoc.getElementById("main"); MainSVG.addEventListener("mousedown",svgMouseDown,false); var ele="<rect width='240' height='220' fill-opacity='0'/>"; |
-- 作者:welfred -- 发布时间:7/27/2006 12:31:00 PM -- 可是奇怪的是,这个事件到底算谁的? |
-- 作者:newone -- 发布时间:7/27/2006 12:44:00 PM -- 奇怪的事情又发生了,我改成面向对象的JS脚本,却又不行了。 function Init(evt) { var obj = new testObject(evt); } function testObject(evt) { this.SVGDoc=evt.target.ownerDocument; this.MainSVG=this.SVGDoc.getElementById("main"); this.MainSVG.addEventListener("mousedown",this,false); var ele="<rect width='240' height='220' fill-opacity='0'/>"; testObject.prototype.mousedown=function(evt) |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
78.125ms |