jQuery .on()不使用动态Raphael元素

时间:2013-04-01 06:11:10

标签: javascript jquery raphael

在下面的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/

1 个答案:

答案 0 :(得分:3)

您可以按照以下方式执行此操作。

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

jsFiddle DEMO