单击SVG矩形的事件

Hal*_*han 16 jquery svg

我在我的Mvc应用程序中使用SVG和jQuery.我在页面上绘制了一系列矩形,我想要做的是为每个矩形附加一个click或mouseover事件,比如弹出一个警告框.到目前为止,我尝试过这样的事情:

$("rect[id='Y6']").attr('onclick', function() { alert("Hello!") });
Run Code Online (Sandbox Code Playgroud)

$("rect[id='Y6']").live('click', function() {    
    alert("Hello!");
};
Run Code Online (Sandbox Code Playgroud)

但遗憾的是,这一事件并没有真正起到控制作用.有谁知道如何做到这一点?

编辑:

我正在添加我正在使用的javascript代码:

<script type="text/javascript">
    /*function resetSize(svg, width, height) {
        svg.configure({ width: width || $(svg._container).width(),
            height: height || $(svg._container).height()
        });
    }*/
    function onLoad(svg, error) {
        //svg.text(10, 20, error || 'Loaded into ' + this.id);
        //resetSize(svg, null, null); //'100%', '100%');
    }

    $(function() {
        $('#layout').svg({});

        var svg = $('#layout').svg('get');
        svg.load('<%= Url.Action("Layout", new{ id = Model.Id }) %>', { //<%= Url.Content("~/media/svg/lion.xml") %>', {
            addTo: false,
            changeSize: false,
            onLoad: onLoad
        });
    });    

$('rect#Y6').click( function(){
  alert('hello');
});

</script>
Run Code Online (Sandbox Code Playgroud)

矩形从svg图片加载.

rob*_*rtc 16

你添加click处理程序的代码需要成为onLoad函数的一部分- 这个改变对我有用.