Cakephp JsHelper和SVG

时间:2014-01-13 10:23:25

标签: cakephp svg

是否可以将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')));

它似乎不起作用。 任何人都可以分享一些想法吗?

祝你好运

1 个答案:

答案 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>