Событие клика для прямоугольника SVG - PullRequest
16 голосов
/ 29 октября 2010

Я использую SVG вместе с jQuery в своем приложении Mvc.Я рисую серию прямоугольников на своей странице, и я хотел бы добавить событие щелчка или наведения мыши для каждого прямоугольника, например всплывающее окно с предупреждением.До сих пор я пробовал что-то подобное:

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

и

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

Но, к сожалению, ни одно из этих событий действительно не сработало для этого элемента управления.Кто-нибудь знает, как это сделать?

РЕДАКТИРОВАТЬ:

Я добавляю код 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>

Прямоугольники загружаются изsvg изображение.

Ответы [ 2 ]

16 голосов
/ 30 октября 2010

Ваш код для добавления обработчика click должен быть частью функции onLoad - с этим изменением он работает для меня .

2 голосов
/ 29 октября 2010

Попробуйте это:

$('rect#Y6').click( function(){
  alert('hello');
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...