1

在下面的 JS Fiddle 中,我添加了一个 Raphael 画布。当您按住 ctrl 单击画布上的任意位置时,它会在左上角创建一个带有“c”类的圆圈。单击圆圈时,.on() 事件应该触发警报('hi')。但是, .on('click', '.c') 事件不起作用。有人可以解释为什么没有触发动态点击事件吗?

var r;
$(document).ready(function (){

r = Raphael('d1', 100, 100);   

});
$(document).on('click', '#d1', function (e){ 

e.preventDefault();
e.stopPropagation();
if (e.ctrlKey)
    {  
       var posX = $(this).offset().left, posY = $(this).offset().top;
       var shape = r.circle(20, 20, 20, 20);
       shape.node.setAttribute('class', 'c');
       shape.attr({fill: '#fff', stroke: '#fff', "fill-opacity": 100, "stroke-width": 2});
    }

});
$(document).on('click', '.c', function (e){ 

e.preventDefault();
e.stopPropagation();

alert('hi');

});

http://jsfiddle.net/TyVtW/

4

1 回答 1

3

您可以按如下方式进行。

$(document).on('click', '#d1 circle[class="c"]', function (e){

jsFiddle DEMO

于 2013-04-01T06:18:06.113 回答