更新:我已运行此代码并检查了Chrome控制台是否存在任何错误或警告。找不到。
我使用Raphael编写了以下代码来绘制圆圈。
我们的想法是让一个大红圈注册.click()
事件,以创建额外的小绿圈。
出于某种原因,对于在第一个大红色圆圈的.click()
事件中创建的较小绿色圆圈,chrome不会触发.click()
个事件。虽然Internet Explorer有。即使 this Fiddle 在浏览Chrome时也能正常运行。但如果完全本地运行,代码将无效。
<html>
<head>
<title>Raphael Test</title>
<script src="script/jquery-1.9.1.js"></script>
<script src="script/raphael.js"></script>
<script>
var x = 100; /* to offset x position for dynamically created */
$(document).ready(function(){
var paper = Raphael('holder');
var circle = paper.circle(300,300,100);
circle.attr("fill","red");
circle.click(function(){
var inner=paper.circle(x+=100,100,20).attr("fill","green");
inner.attr("stroke-width","4");
/* The following code has no effect whatsoever !!!*/
inner.click(function(){
alert('green circle clicked');
});
});
});
</script>
</head>
<body>
<div id="holder" style="background-color:whitesmoke;width:100%;height:100%;"></div>
</body>
</html>
我尝试在高级中声明click事件,并将函数名称传递给创建对象的.click(),但这不起作用。
我尝试将inner
变量声明为红色circle
的范围,以便稍后我可以向其添加事件侦听器,但这也无效。
如何创建对象并将.click()事件附加到它?