是否可以将cakephp中的事件绑定到svg节点元素?
我让RequestHandler正常使用div,但我是 要求在页面中设置一个具有多个可点击区域的SVG。
如果我执行类似以下代码的操作:
<object id="mysvg" type="image/svg+xml" data="/img/mysvg.svg">
<p>Error, browser must support "SVG"</p>
</object>
然后添加jshelper代码:
$this->Js->get('#mysvg-nodeID')->event('click', $this->Js->request(
array('action' => 'myaction', 'param01'),
array('async' => true, 'update' => '#main_div')));
它似乎不起作用。 任何人都可以分享一些想法吗?
祝你好运
答案 0 :(得分:0)
回答我自己的问题以防其他人也需要这个。
可能有更好的解决方案,如果您找到一个,请分享:)
无论如何,这个是为了它的目的。因为我找不到办法 与svg节点关联的事件我为该部分添加了javascript。
<script type="text/javascript">
//<![CDATA[
var a = document.getElementById("mysvg");
//it's important to add an load event listener to the object, as it will load the svg doc asynchronously
a.addEventListener("load",function(){
var svgDoc = a.contentDocument; //get the inner DOM
var delta = svgDoc.getElementById("mysvg-nodeID"); //get the inner element by id
delta.addEventListener("mousedown",
function(){
<?php
echo $this->Js->request(array('action' => 'myaction', 'param01'),array('async' => true, 'update' => '#main_div'));
?>
},false); //add behaviour
</script>